可以說我在ViewController1中,我想加載ViewController2。我知道完成這一切的唯一方法是使用ViewController1中的按鈕,並連接到故事板中的ViewController2,但我不想這樣做。我想在MyViewController1的方法中做。例如,在我的viewDidLoad方法中。手動加載視圖目標c
任何幫助,非常感謝。謝謝
可以說我在ViewController1中,我想加載ViewController2。我知道完成這一切的唯一方法是使用ViewController1中的按鈕,並連接到故事板中的ViewController2,但我不想這樣做。我想在MyViewController1的方法中做。例如,在我的viewDidLoad方法中。手動加載視圖目標c
任何幫助,非常感謝。謝謝
不要混淆視圖和ViewControllers。你發佈標題表明你沒有完全根深蒂固。
如果您想以編程方式呈現另一個視圖控制器,那麼只需爲該按鈕創建一個操作方法並在此處執行操作。 ViewDidLoad絕對是不適合爲此目的。
就能呈現包含在這樣的故事板視圖控制器:
-(IBAction)goToDetails:(id)sender
{
//identify the correct storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"storyboard's name" bundle:nil];
//extract a view controller instance from the storyboard
DetailViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"details view controller's identifier"];
//present the view controller instance
[self presentViewController:detailViewController
animated:YES
completion:nil];
}
而這裏的去一個一個不相關的非故事板視圖控制器的例子。
-(IBAction)loginToSystem:(id)sender
{
LoginViewController *loginViewController = [[LoginViewController alloc] init];
[self presentViewController:loginViewController
animated:YES
completion:nil];
}
ViewController在Storyboard中,所以這不會奏效。他需要https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStoryboard_Class/#//apple_ref/occ/instm/UIStoryboard/instantiateViewControllerWithIdentifier: – 2015-02-24 18:03:10
@RatulSharker OP沒有說它是在故事板。 – Unheilig 2015-02-24 18:56:28
問題說「故事板中的ViewController2」。這就是爲什麼我建議[故事板實例化..... – 2015-02-24 18:58:33
如果您正在試圖嵌入由ViewController2管理成ViewController1管理的觀點來看,你可以通過添加UIContainerView到ViewController1與嵌入SEGUE指向ViewController2做到這一點。
這很有用,例如,如果您有一個由ViewController2管理的可重用視圖並希望在多個位置使用該視圖。
您可以在InterfaceBuilder中將UIContainerView從Object庫拖到ViewController1的視圖中。然後,您可以將其創建的視圖控制器的類更改爲ViewController2。
創建從一個VC1到賽格瑞VC2故事板裏面,給它一個名字,並呼籲:
[self performSegueWithIdentifier: @"mySegueCustomName" sender: self];
似乎重複,以 http://stackoverflow.com/questions/28077933/switching-storyboard -view-controller-in-objective-c – 2015-02-24 18:00:34