2017-03-05 40 views

回答

0
The below code will work perfectly; 

UIImage* image3 = [UIImage imageNamed:@"info.png"]; 
CGRect frameimg = CGRectMake(0, 0, image3.size.width*4, image3.size.height); 
UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg]; 
//[someButton setBackgroundImage:image3 forState:UIControlStateNormal]; 
[someButton setTitle:@"Category" forState:UIControlStateNormal]; 
[someButton addTarget:self action:@selector(popUpPicker:) 
    forControlEvents:UIControlEventTouchUpInside]; 
[someButton setShowsTouchWhenHighlighted:YES]; 

UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton]; 
self.navigationItem.rightBarButtonItem=mailbutton; 
self.navigationItem.leftBarButtonItem = nil; 
0

對於這些,你必須使用類別,然後你必須在你的每個視圖控制器中調用它,以獲得每個導航按鈕動作的一個代碼。

0

沒有神奇的配方。無論如何,您必須將相同的「UIButton或UIBarButton或任何UI對象」添加到每個UIViewController的navigationItem,這些UIViewController的視圖將出現在此導航控制器的導航欄下。

您可以通過創建在一個地方這個對象減少重複的代碼量,但說

self.navigationItem.rightBarButtonItem = thisItem 

或不管它是你想要的欄按鈕項目做的行爲,則要對每個視圖控制器分開並明確執行。