我有一个奇怪的设计模式,我有一个工具栏作为标签栏。基本上我将这个工具栏添加到我的所有视图控制器,工具栏本身包含指向我的应用程序中3个不同的导航控制器的指针。当按下其中一个工具栏按钮时,它应该能够删除当前在窗口上的导航控制器,并添加用户选择的导航控制器。我的问题是我不确定如何将新的navcontroller添加到superview。我会实例化一个app delegate对象并将其添加到该对象中吗?或者我是否需要将我的app委托指针作为类变量发送到工具栏?任何帮助将不胜感激。
答案 0 :(得分:1)
在我看来,解决此问题的最佳方法是管理您的应用代表中的UINavigationController
切换。您也可以在此处查看此过程中需要执行的所有清理工作。如果有一定数量的UINavigationController
被切换出来,我可能只有几种方法可以解决这个问题:
App委托.h文件:
@property (nonatomic, retain) UINavigationController *currentNavController;
App delegate .m文件:
@synthesize currentNavController = _currentNavController;
- (void)loadNavControllerOne
{
self.currentNavController = ...; // Set up your new controller
self.window.rootViewController = self.currentNavController;
}
- (void)loadNavControllerTwo
{
// Similar to -(void)loadNavControllerOne
}
Abridged,但你明白了。但是,如果您需要在这些控制器之间共享状态,这将会改变。你呢?
编辑:要访问应用代理人,请致电[[UIApplication sharedApplication] delegate]
。