Ios 堆叠式导航控制器
我是iOS新手,我正在使用故事板 我有一个有一些观点的应用程序 My rootViewController(1)是连接到其他视图的UINavigationController。在应用程序(2)中的某一点上,我包含了一个组件(SWRevealViewController,Facebook侧菜单样式),它是UINavigationController的一个实例,因此我有两个UINavigationController相互嵌套。我想删除第一个UINavigationController或将其更改为新的UINavigationController(2),并且只保留一个。所有视图都可以通过自定义分段访问 我认为解决方案是在加载视图(2)之前更改rootViewController,并将第二个UINavigationController设置为应用程序的主视图 我试图通过以下方式解决此问题:Ios 堆叠式导航控制器,ios,uinavigationcontroller,uistoryboard,uistoryboardsegue,Ios,Uinavigationcontroller,Uistoryboard,Uistoryboardsegue,我是iOS新手,我正在使用故事板 我有一个有一些观点的应用程序 My rootViewController(1)是连接到其他视图的UINavigationController。在应用程序(2)中的某一点上,我包含了一个组件(SWRevealViewController,Facebook侧菜单样式),它是UINavigationController的一个实例,因此我有两个UINavigationController相互嵌套。我想删除第一个UINavigationController或将其更改为新的
[UIApplication delegate].window.rootViewController = myController;
但我只有nil
或一个空窗口
我读了很多帖子,说解决方案可以在我的AppDelegate中的方法中-(void)applicationdFinishLaunching:(UIApplication*)application
我不知道如何将其应用到我的结构中,因为启动应用程序时会调用该方法 我认为我的工作流应用程序是错误的。
欢迎任何反馈或帮助!
提前感谢。您可以删除(1)或将其卸载到另一个隐藏的视图控制器中,一旦用户返回到您想要(1)的位置,就可以将其重新加载。这可以在
-(void)applicationdFinishLaunching:(UIApplication*)应用程序中完成
可以从另一个控制器更改根视图控制器,但您的代码是错误的。应该是:
[UIApplication sharedApplication].delegate.window.rootViewController = myController;
如果您是从当前视图显示在屏幕上的控制器执行此操作,则可以通过以下方式执行此操作:
self.view.window.rootViewController = myController;
只要myController被正确实例化,这应该可以工作。我试图将这些语句放入我的控制器中,但我得到一个黑屏:self.view.window.rootViewController=self;[self.view.window makeKeyAndVisible];此外,self.view.window.rootViewController的值为null@FrandelaRosaself.view.window是否也为空?如果你的代码所在的控制器在屏幕上有它的视图,那就不应该了。它可以工作!我已使用带有[storyboard InstanceEviewController WithiIdentifier:@“id”]的故事板创建了控制器的新实例,并将其传递给我的[UIApplication sharedApplication].delegate.window.rootViewController。谢谢你的帮助!