我有我想添加一個唯一的UIToolbar,這將是持久的,無論是當前視圖導航基於應用程序,使用這樣的:添加UIToolbar到窗口
Persistent UIBarButtonItem in UIToolbar?
的問題是當我爲navigationController設置框架時,navigationController中的UITableView在導航欄下移動20px,就好像它開始繪製在狀態欄後面一樣。
關於如何解決這個問題的任何想法?我卡住了!
我有我想添加一個唯一的UIToolbar,這將是持久的,無論是當前視圖導航基於應用程序,使用這樣的:添加UIToolbar到窗口
Persistent UIBarButtonItem in UIToolbar?
的問題是當我爲navigationController設置框架時,navigationController中的UITableView在導航欄下移動20px,就好像它開始繪製在狀態欄後面一樣。
關於如何解決這個問題的任何想法?我卡住了!
我結束了使用navigationController的內置工具欄。
所以每viewDidLoad中我將當前toolbarItems同一個數組:
- (void)viewDidLoad {
[super viewDidLoad];
MyDelegate *appDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate];
[self setToolbarItems:[appDelegate toolbarItems] animated:YES];
}
我看不出有任何的轉變,我總是可以將其設置爲不同的按鈕,如果我需要在一個specialy的viewController。
也許這是它應該完成的方式。奧卡姆剃刀,任何人? :)
我做了一個自定義對象從UIToolbar派生,並增加了一個屬性調用staticItems我在init方法填充3的UIBarButtonItem(和他們的邏輯)
我設置「顯示工具欄」到我的UINavigationController對象,並將工具欄的類更改爲我的新類。
然後我設置導航的父對象導航的委託,並實現這些方法
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[viewController setToolbarItems:downloadToolbar.staticItems animated:NO];
}
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{}
真正貼近你做了什麼,更容易一點維護。希望會幫助別人。
leolobato你救了我一些撓我的頭時間與你的問題/答案。 只是我注意到這個實現的一件小事:如果您在UIViewControllers之間移動時仔細查看UIToolbar,它實際上會將工具欄項目淡入淡出。我現在要運行這種解決方案,並留意在獨立UIToolbar(UINavigationController之外)的理想解決方案。 – Jessedc 2010-06-14 12:52:40