2015-10-05 81 views
0

我有一個UINavigationController控制器在故事板是入口點,它的類是MyNavigationController。 我還沒有分配rootviewcontrollerUINavigationController,從故事板上,但想要分配從MyNavigationController相同,從一些初始化方法 請幫我怎麼做,或者是不可能的?更改在故事板,而其初始化的UINavigationController的rootviewcontroller

+0

你的問題不清楚,否則使用initiatewithidentifier,否則找到最高控制器 –

+0

是否可以通過重寫'MyNavigationController'中的任何方法? –

+0

使用stroyboard或xib和r你工作在objective-c或swift –

回答

0

選擇-1

您可以識別您的Stroryboard ID,並設置爲根

enter image description here

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginSignupVC"]; 
[[UIApplication sharedApplication].keyWindow setRootViewController:rootViewController]; 
} 

選擇-2

初始視圖控制器自動識別您的根控制器

enter image description here

您可以使用屬性

enter image description here

您的視圖 - 控制識別您的Stroryboard ID
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
MyNavigationController *rootViewController = [storyboard instantiateViewControllerWithIdentifier:@"LoginSignupVC"]; 
[[UIApplication sharedApplication].keyWindow setRootViewController:rootViewController]; 
} 

選擇-3

的Xcode - >菜單 - >編輯 - > embedIn - > NavigationController

enter image description here

你可以像下面的輸出

enter image description here

它找到自動你的根控制器

+0

任何可能做到「MyNavigationController」? –

+0

MyNavigationController ....? –

+0

如問題 –

0

因此,如果我理解正確並且希望使用給定視圖控制器初始化它,那麼您將子類別UINavigationController

可以在MyNavigationController覆蓋init和呼叫[super initWithRootViewController:myRootViewController],其中myRootViewController是UIViewController或它的子類的實例。

你會再使用MyNavigationController這樣:

MyNavigationController *myNavigationController = [[MyNavigationController alloc] init]; 

欲瞭解更多信息,請參見:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationController_Class/#//apple_ref/occ/instm/UINavigationController/initWithRootViewController

+0

我不想使用 'MyNavigationController * myNavigationController = [[MyNavigationController alloc] init];' 它在故事板上,並且是入口點,只想分配或分配'rootviewcontroller'獨自 –

+0

年輕的我電話在這裏。你見過setViewControllers方法嗎? –

+0

你可以調用[myNavigationController setViewCobtrollers:@ [myRootViewController]];在init方法中使用 –

相關問題