0

对于我的一个应用程序,我有一个奇怪的设计模式,其中我有一个充当标签栏的工具栏。基本上,我将此工具栏添加到我的所有视图控制器中,并且工具栏本身包含指向我应用程序中 3 个不同导航控制器的指针。当按下工具栏按钮之一时,它应该能够删除当前在窗口上的导航控制器,并添加用户选择的导航控制器。我的问题是我不确定如何将新的导航控制器添加到超级视图。我会实例化一个应用程序委托对象并将其添加到其中吗?或者我是否需要将我的应用程序委托的指针作为类变量发送到工具栏?任何帮助,将不胜感激。

4

1 回答 1

1

在我看来,最好的方法是管理您UINavigationController在应用程序委托中的切换。您也可以在此处处理此过程中需要执行的所有清理工作。如果有有限数量的UINavigationControllers 被切换出去,我可能只有几种方法可以解决这个问题:

应用委托 .h 文件:

@property (nonatomic, retain) UINavigationController *currentNavController;

应用委托 .m 文件:

    @synthesize currentNavController = _currentNavController;

    - (void)loadNavControllerOne
    {
        self.currentNavController = ...; // Set up your new controller
        self.window.rootViewController = self.currentNavController;
    }

    - (void)loadNavControllerTwo
    {
        // Similar to -(void)loadNavControllerOne
    }

删减了,但你明白了。但是,如果您需要在这些控制器之间共享状态,这将会改变。你?

编辑:为了访问应用程序委托,调用[[UIApplication sharedApplication] delegate].

于 2011-08-06T10:41:57.680 回答