将条形按钮项添加到视图控制器中的按钮

时间:2012-05-11 09:29:00

标签: objective-c ios cocoa

我有一个视图控制器,它是独立的并且有两个左UIBarButtonItem,但是当我按下它时,我想要这两个按钮+后退按钮

我试过

- (void)viewDidLoad
{
    [super viewDidLoad];

    // back
    if (self.navigationController.navigationItem.backBarButtonItem) {

        self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:self.navigationController.navigationItem.backBarButtonItem, self.barButtonFilter, self.barButtonFilterContacts, nil];

    } else {

        self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:self.barButtonFilter, self.barButtonFilterContacts, nil];

    }
}

如果有后退按钮,则添加,否则替换

但我没有工作

3 个答案:

答案 0 :(得分:0)

我无法解决您的问题,但根据您的标题,您想要使用条形按钮项目替换UINavigationController的后退按钮,在这种情况下,您只需要使用自定义按钮代替背面按钮:

UIBarButtonItem *backButton= [[UIBarButtonItem alloc] initWithTitle:@"yourTitle" style:UIBarButtonItemStylePlain target:self action:@selector(someFunction:)];             
self.navigationItem.rightBarButtonItem = backButton;   
[backButtonrelease]; 

如果这不是你的问题,请详细说明。

答案 1 :(得分:0)

所以这里的问题是UINavigationBar只能有一个leftButtonItem和一个rightButtonItem。但你可以做的是UINavigationBar的中心,你可以有一个UIView。您可以使用它来放置按钮。

有人在这里有代码:adding-buttons-to-the-titleview-of-navigationbar-without-having-to-repeat-code

答案 2 :(得分:0)

来自Apple的iOS人机界面指南:

  

如果您需要提供,请使用工具栏而不是导航栏   更大的控件集,或者您不需要启用导航。

     

避免使用其他控件拥挤导航栏,即使   似乎有足够的空间。导航栏应包含否   不仅仅是视图的当前标题,后退按钮和一个控件   管理视图的内容。相反,如果您使用分段   在导航栏中控制,栏不应显示标题和   它不应包含分段控件以外的任何控件。

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/UIElementGuidelines/UIElementGuidelines.html