我知道这个主题有很多,但我无法获得任何代码。我正在运行iOS5并为iPad构建,我只能在导航栏的一侧找到两个按钮。
任何帮助都将不胜感激,谢谢。
编辑:
我测试过的一些代码,viewDidLoad
中的代码,虽然没有做任何事情。
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(save)];
UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc] initWithTitle:@"Delete" style:UIBarButtonItemStylePlain target:self action:@selector(delete)];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:saveButton,deleteButton,nil];
答案 0 :(得分:31)
在iOS 5中,UINavigationItem
获得了数组属性:rightBarButtonItems
和leftBarButtonItems
。您可以在类引用中查看有关它们如何与leftBarButtonItem
和rightBarButtonItem
以及后退按钮here相关的详细信息。
简而言之,您只需从按钮中创建一个数组,然后设置导航项的属性。我使用此功能在导航栏的左侧和右侧都有两个按钮。
编辑
这是我用来创建数组的代码。我的按钮都是在界面构建器中创建的:
self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:backButton, settingsButton, nil];
self.navigationItem.leftItemsSupplementBackButton = YES;
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:continueButton, saveButton, nil];
答案 1 :(得分:0)
我相信这些答案假设您使用的是默认导航栏。 (换句话说,当您使用UINavigationViewController时,iOS会“免费”为您提供。)
如果您正在使用自定义UINavigationBar,那么您需要检索它的第一个UINavigationItem。 (您也可以覆盖默认的UINavigationItem。)从那里,您可以设置leftBarButtonItems和rightBarButtonItems属性。
这样的事情:
// customNavBar points to my custom UINavigationBar
navItem = [[UINavigationItem alloc] initWithTitle:@"Details"];
NSArray *navArray = [[NSArray alloc] initWithObjects:navItem, nil];
[customNavBar setItems:navArray]; // This wipes out all existing UINavigationItem objects
NSArray *leftArray = [[NSArray alloc] initWithObjects:itemOk, nil];
NSArray *rightArray = [[NSArray alloc] initWithObjects:itemCancel, nil];
navItem.leftBarButtonItems = leftArray;
navItem.rightBarButtonItems= rightArray;