2015-02-24 79 views
-2

可以說我在ViewController1中,我想加載ViewController2。我知道完成這一切的唯一方法是使用ViewController1中的按鈕,並連接到故事板中的ViewController2,但我不想這樣做。我想在MyViewController1的方法中做。例如,在我的viewDidLoad方法中。手動加載視圖目標c

任何幫助,非常感謝。謝謝

+0

似乎重複,以 http://stackoverflow.com/questions/28077933/switching-storyboard -view-controller-in-objective-c – 2015-02-24 18:00:34

回答

0

不要混淆視圖和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]; 
} 
+0

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

+0

@RatulSharker OP沒有說它是在故事板。 – Unheilig 2015-02-24 18:56:28

+0

問題說「故事板中的ViewController2」。這就是爲什麼我建議[故事板實例化..... – 2015-02-24 18:58:33

0

如果您正在試圖嵌入由ViewController2管理成ViewController1管理的觀點來看,你可以通過添加UIContainerView到ViewController1與嵌入SEGUE指向ViewController2做到這一點。

這很有用,例如,如果您有一個由ViewController2管理的可重用視圖並希望在多個位置使用該視圖。

您可以在InterfaceBuilder中將UIContainerView從Object庫拖到ViewController1的視圖中。然後,您可以將其創建的視圖控制器的類更改爲ViewController2。

0

創建從一個VC1到賽格瑞VC2故事板裏面,給它一個名字,並呼籲:

[self performSegueWithIdentifier: @"mySegueCustomName" sender: self];