2017-03-05 49 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 

或不管它是你想要的栏按钮项目做的行为,则要对每个视图控制器分开并明确执行。