2010-06-12 88 views
6

我想繼承UINavigationController以獲得更多關於控制器外觀的自由。繼承UINavigationController的步驟

我有一些圖形的不同部分,酒吧,按鈕,文本等 看着UINavigationController頭文件我得到的幫助不大,我不知道從哪裏開始。

我從來沒有將UIKit組件覆蓋/覆蓋過,它看起來有點像玩福爾摩斯。

什麼是方法?

我怎麼知道要重寫什麼以獲取特定的圖形片「注入」正確的位置?

我是否需要繼承UINavigationBar,UIBarButtonItem等等以獲得完整的自定義外觀?

我怎麼知道蘋果是否批准了某些限制?

希望有人能指點我正確的方向,我只能找到更改控制器小部分的示例,而不是通過子類化完全定製。 我該怎麼做呢?

謝謝:)

+0

對於它的價值,你可能會做的更好寫從地上爬起來的自定義導航控制器。 – zoul 2010-06-12 20:28:25

回答

8

你不應該擴展UINavigationController。

從iOS 6開始,此信息已過時。來自Xcode 5文檔: 您通常會按原樣使用此類,但在iOS 6中,您可能會繼承子類以自定義類行爲。

原始過時的信息如下:

從文檔:

的UINavigationController的類實現了管理的層級內容導航一個專門的視圖控制器。這個類不適用於子類。相反,如果您希望應用程序的用戶界面能夠反映內容的層次性,您就可以使用它的實例。

你可能要考慮創建類別或子類的UINavigationBar的和潛在的創造,你用它來創建自定義的UIBarButtonItems UIButtons。

每當你處理從UIView的延伸,你應該考慮一下做一個UI組件是子類化和壓倒一切的

- (void)drawRect:(CGRect)rect 

有很多的例子在這裏計算器或蘋果的官方文檔網站。現在

+0

嗨,謝謝,我可以看到,當搜索如何重寫時,有很多結果,但在尋找子類時很少,沒有好結果。我在UINavigationBar中做了一個類別,這改變了背景,我是否必須爲UINavigationController,UIBarButtonItem等等做這個。改變按鈕和字體? – RickiG 2010-06-14 09:22:26

+0

嗨Ricki, 1.不要擴展UINavigationController和UIBarButtonItem。 2.創建UIBarButtonItem時,使用initWithCustomView initalizer,它允許您準備和使用您需要的任何視圖(您可以在其中繪製任何文本,字體,圖像等)。 乾杯 – nicktmro 2010-06-15 10:51:38

+0

感謝Nick :)在將它很好地包裝在類別和實用程序類後,我很高興我接受了建議,並沒有嘗試構建自己的或擴展它。我現在可以在navigationBar上更改titleLabel和背景,並將我的自定義按鈕用作BarButtomItems。 – RickiG 2010-06-15 12:08:44

52

你也可以繼承的UINavigationController,看到更新的文檔:

的UINavigationController的類實現了管理的層級內容導航一個專門的視圖控制器。此導航界面可以有效地呈現數據,並且使用戶可以更輕鬆地瀏覽該內容。這個類通常按原樣使用,但可能會在iOS 6及更高版本中進行分類。

UINavigationController Class Reference

+0

其實我認爲最好在標註爲「正確」的答案的評論中指出這種更改。 我想我會做到這一點... – bazzilla 2015-11-06 09:33:38