检测UIViewController是否在现有UINavigationController内运行

时间:2011-08-22 16:38:43

标签: ios4 uinavigationcontroller uinavigationbar

我正在创建一个通用的可重用UIViewController组件,人们可以将其添加到他们的应用程序中。它需要在顶部的导航栏,它将添加一些按钮。

我可以轻松创建导航栏并添加按钮,但如果使用我的组件的开发人员将视图添加为现有导航结构的一部分,则最终可能会有2个导航栏。

换句话说,如果我的视图加载了:

 [self.navigationController pushViewController:controller animated:YES];

然后它不应该添加导航栏并使用已经存在的内容。如果视图加载了:

 [self presentModalViewController:controller animated:YES];

然后它应该添加自己的导航栏。

不要求使用我的控制器的开发人员做类似useNavBar的事情:是的,有没有办法自动执行此操作?

像[self isRunningInsideANavigationController]或[self hasNavigationBar]这样的东西。

1 个答案:

答案 0 :(得分:1)

您可以将self.navigationController用于此目的。它将返回nil或navigationController。