在初始化时更改情节提要中的 UINavigationController 的 rootviewcontroller
changing rootviewcontroller of a UINavigationController which is in storyboard while its initialised
我在故事板中有一个 UINavigationController
控制器作为入口点,它的 class 是 MyNavigationController
。
我没有从故事板中将 rootviewcontroller
分配给 UINavigationController
,但想从 MyNavigationController
中分配相同的内容,通过一些初始化方法
请帮助我如何做到这一点,或者这是不可能的?
如果我理解正确并且您希望使用给定的视图控制器对其进行初始化,那么您将 UINavigationController
子类化了。
您可以在 MyNavigationController
中覆盖 init
并调用 [super initWithRootViewController:myRootViewController]
,其中 myRootViewController 是 UIViewController
或其子类的实例。
然后您可以这样使用 MyNavigationController
:
MyNavigationController *myNavigationController = [[MyNavigationController alloc] init];
选择-1
您可以识别您的 Storyboard ID 并设置为 Root
- (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
初始视图控制器会自动识别您的根控制器
您可以使用属性
在您的 viewcontroller 上识别您的 Storyboard 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
你可以得到如下输出
它会自动找到您的根控制器
我在故事板中有一个 UINavigationController
控制器作为入口点,它的 class 是 MyNavigationController
。
我没有从故事板中将 rootviewcontroller
分配给 UINavigationController
,但想从 MyNavigationController
中分配相同的内容,通过一些初始化方法
请帮助我如何做到这一点,或者这是不可能的?
如果我理解正确并且您希望使用给定的视图控制器对其进行初始化,那么您将 UINavigationController
子类化了。
您可以在 MyNavigationController
中覆盖 init
并调用 [super initWithRootViewController:myRootViewController]
,其中 myRootViewController 是 UIViewController
或其子类的实例。
然后您可以这样使用 MyNavigationController
:
MyNavigationController *myNavigationController = [[MyNavigationController alloc] init];
选择-1
您可以识别您的 Storyboard ID 并设置为 Root
- (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
初始视图控制器会自动识别您的根控制器
您可以使用属性
在您的 viewcontroller 上识别您的 Storyboard 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
你可以得到如下输出
它会自动找到您的根控制器