2011-08-22 54 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

謝謝,我不確定這將是一種可靠的方式。但幸運的是,這是簡單的:) –

相關問題