2014-10-16 38 views
0

我想添加一個圖像到導航欄。香港專業教育學院使用UINavigationBar外觀addSubview在iOS中不工作8

[[UINavigationBar appearance] addSubview:logoImage]; 

似乎與iOS 7的工作,但不與iOS 8的工作,任何人可以請解釋爲什麼發生這種情況,什麼是對的iOS 8添加導航欄上的ImageView的替代方式?

回答

1

調用[[UINavigationBar appearance]返回接收器類的外觀代理。 addSubview:方法未標記爲UI_APPEARANCE_SELECTOR。 UIAppearance的代理方法的一個主要缺點是很難知道哪些選擇器兼容。

這篇文章解釋了它好一點:http://nshipster.com/uiappearance/ 而這個鏈接https://gist.github.com/mattt/5135521從文章中顯示,被標記爲UI_APPEARANCE_SELECTOR在iOS的7

你應該繼承UINavigationBar並調用[[UINavigationController alloc] initWithNavigationBarClass:toolBarClass:]方法。將您的新導航欄子類作爲第一個參數,並將nil作爲第二個參數,以使用標準UIToolbar。在你的子類中,像你一樣添加圖像。

另一種可行的方法是獲取導航控制器的導航欄並在其中添加子視圖,如下所示: [self.navigationController.navigationBar addSubview:logoImage]。這可能會起作用,但創建自己的子類肯定會給你更多的靈活性。

+0

非常感謝我需要一個快速修復和'[self.navigationController.navigationBar addSubview:logoImage]'完美的工作,所以沒有子類的'UINavigationBar' – Bonnie 2014-10-23 08:20:15

相關問題