2011-08-22 71 views
1

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

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

换句话说,如果我的观点是装有:

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

那么它不应该添加一个导航栏,用什么已经存在。如果视图加载了:

[self presentModalViewController:controller animated:YES]; 

那么它应该添加自己的导航栏。

不需要开发人员使用我的控制器来做一些像useNavBar:YES,有没有办法自动做到这一点?

类似于[self isRunningInsideANavigationController]或[self hasNavigationBar]会做的事情。

回答

1

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

+0

谢谢,我不确定这将是一种可靠的方式。但幸运的是,这是简单的:) –

相关问题