可重复使用的UIViewController中的通用导航栏

时间:2012-08-10 18:34:04

标签: iphone ios cocoa-touch

我有一个UIViewController,它是我的静态库的一部分。此UIViewController可能在不同的应用程序中使用。某些应用程序应该能够使用当前模式以导航样式呈现此视图。

问题是:设计这个关于导航栏的UIViewController的优雅方法是什么?目前我有以下解决方案:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if (self.navigationController != nil) {
        self.navigationItem.title = @Test;
        //... set nav bar buttons

    } else {
        UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
        navBar.topItem.title = @Test;
       //... set nav bar buttons and add UINavigationBar to view
    }

}

2 个答案:

答案 0 :(得分:1)

好的优雅方式是将你的通用UIViewController添加到UINavigationController

非常有用。

答案 1 :(得分:0)

从iOS 5开始,Apple添加了UIViewController容器。这允许您编写类似于UINavigation Controllers的类。

使用addChildViewController:方法将另一个视图控制器添加到层次结构中,然后可以根据需要绘制视图控制器的视图。

Apple的这个文档页面包含您需要的所有信息http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/AboutViewControllers/AboutViewControllers.html