2009-09-23 99 views
1

我有我想添加一個唯一的UIToolbar,這將是持久的,無論是當前視圖導航基於應用程序,使用這樣的:添加UIToolbar到窗口

Persistent UIBarButtonItem in UIToolbar?

的問題是當我爲navigationController設置框架時,navigationController中的UITableView在導航欄下移動20px,就好像它開始繪製在狀態欄後面一樣。

關於如何解決這個問題的任何想法?我卡住了!

回答

2

我結束了使用navigationController的內置工具欄。

所以每viewDidLoad中我將當前toolbarItems同一個數組:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    MyDelegate *appDelegate = (MyDelegate *)[[UIApplication sharedApplication] delegate]; 
    [self setToolbarItems:[appDelegate toolbarItems] animated:YES]; 
} 

我看不出有任何的轉變,我總是可以將其設置爲不同的按鈕,如果我需要在一個specialy的viewController。

也許這是它應該完成的方式。奧卡姆剃刀,任何人? :)

+0

leolobato你救了我一些撓我的頭時間與你的問題/答案。 只是我注意到這個實現的一件小事:如果您在UIViewControllers之間移動時仔細查看UIToolbar,它實際上會將工具欄項目淡入淡出。我現在要運行這種解決方案,並留意在獨立UIToolbar(UINavigationController之外)的理想解決方案。 – Jessedc 2010-06-14 12:52:40

0

我在向UIWindow添加子視圖時遇到過這種情況。我嘗試了各種來自人們的建議,但最終只是將框架原點向下移動了20px以適應狀態欄。

+0

我試過了,但navigationBar沿着tableView移動,所以我最終得到了一個20px空白的白色條。而tableView仍然隱藏。 – leolobato 2009-09-25 13:28:36

+0

你可以發佈一個鏈接到正在運行的應用程序的屏幕抓圖,這可能會幫助我更好地瞭解正在發生的事情。 – pzearfoss 2009-09-25 13:57:02

0

我做了一個自定義對象從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 
{} 

真正貼近你做了什麼,更容易一點維護。希望會幫助別人。