更改UINavigationController的rootviewcontroller,它在初始化时在storyboard中

时间:2015-10-05 09:12:48

标签: ios uinavigationcontroller storyboard

我在故事板中有一个UINavigationController控制器,它是一个入口点,其类为MyNavigationController。 我没有从故事板中将rootviewcontroller分配给UINavigationController,但是想要从MyNavigationController分配相同的内容,从一些初始化方法 请帮我怎么做或不可能吗?。

2 个答案:

答案 0 :(得分:0)

因此,如果我理解正确并且您希望使用给定的视图控制器初始化它,则为子类UINavigationController

您可以覆盖init中的MyNavigationController并调用[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

答案 1 :(得分:0)

<强>选择-1

您可以识别您的Stroryboard ID并设置为Root

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

初始视图COntroller会自动识别您的根控制器

enter image description here

您可以使用属性

在viewcontroller上识别Stroryboard ID

enter image description here

- (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 - &gt;菜单 - &gt;编辑 - &gt; embedIn - &gt; NavigationController

enter image description here

你可以得到以下输出

enter image description here

它会自动找到你的根控制器