2012-05-23 67 views
0

我想這個問題聽起來可能對很多人來說聽起來很不明顯。但我仍然是iOS開發人員的初學者,儘管我正在改進,但有些東西仍然讓我感到困惑。 我的應用程序的菜單具有以下配置:包含導航欄的導航控制器,並嵌入包含導航項目的視圖控制器btw。 我的導航欄子類UINavigationBar使其看起來像我想要的。我需要一些關於UINavigationControllers/UIBarButtonItems的信息

現在,我只想添加一個自定義BarButtonItem與我(信息),我已經繪製它。所以這是我的問題:我如何添加此按鈕?

非常感謝您的建議。

回答

1
// Create the Info button 
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 

// Give it an action handler 
[infoButton addTarget:self 
       action:@selector(infoButtonAction:) 
    forControlEvents:UIControlEventTouchUpInside]; 

// Create a UIBarButtonItem to "contain" the Info button 
UIBarButtonItem *infoItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 

// Add the UIBarButtonItem to the navigation bar (on the left side) 
[self.navigationItem setLeftBarButtonItem:infoItem animated:NO]; 

行動處理程序:

- (void)infoButtonAction:(id)sender { 
    NSLog(@"Tapped on info button!"); 
} 
+0

謝謝...我想我必須在我的ViewController的viewDidLoad方法中寫入這個? – Rob

1

這可能不是直接回答你的問題,但如果你使用的UINavigationController,因爲它本來是用它很可能避免的問題。而不是繼承UINavigationBar來定製它的接口,只需使用它的UIAppearance方法,然後像普通一樣創建一個UINavigationController。

// Create navigation controller. 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController]; 

// Customize navigation bar appearance. 
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]]; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigation-bar-background"] forBarMetrics:UIBarMetricsDefault]; 
+0

雖然非常感謝,但它非常有用。 :) – Rob