2011-06-06 89 views
16

我正在尝试此操作,但它不起作用。在导航栏上添加两个以上的按钮

-(void)viewDidLoad 
{ 
    // create a toolbar where we can place some buttons 
    UIToolbar* toolbar = [[UIToolbar alloc] 
        initWithFrame:CGRectMake(0, 0, 100, 45)]; 
    [toolbar setBarStyle: UIBarStyleBlackOpaque]; 

    // create an array for the buttons 
    NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3]; 

    // create a standard save button 
    UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem:UIBarButtonSystemItemSave 
     target:self 
     action:@selector(saveAction:)]; 
    saveButton.style = UIBarButtonItemStyleBordered; 
    [buttons addObject:saveButton]; 
    [saveButton release]; 

    // create a spacer between the buttons 
    UIBarButtonItem *spacer = [[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace 
     target:nil 
     action:nil]; 
    [buttons addObject:spacer]; 
    [spacer release]; 

    // create a standard delete button with the trash icon 
    UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc] 
     initWithBarButtonSystemItem:UIBarButtonSystemItemTrash 
     target:self 
     action:@selector(deleteAction:)]; 
    deleteButton.style = UIBarButtonItemStyleBordered; 
    [buttons addObject:deleteButton]; 
    [deleteButton release]; 

    // put the buttons in the toolbar and release them 
    [toolbar setItems:buttons animated:NO]; 
    [buttons release]; 

    // place the toolbar into the navigation bar 
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
      initWithCustomView:toolbar]; 
    [toolbar release]; 
} 

我该如何解决这个问题?

+0

有StackOverflow上在几个类似的问题。看看[这些问题](http://stackoverflow.com/search?q=navigation+bar+multiple+items)。 – Piotr 2011-06-06 08:36:35

+0

我知道,但这个代码不工作,这是问的问题? – Ajay 2011-06-06 08:41:24

+0

这是一个可可接触的问题。所以请保留标签。 – vikingosegundo 2011-06-06 08:46:05

回答

11
UIToolbar* toolbar = [[UIToolbar alloc] 
         initWithFrame:CGRectMake(0, 0, 320, 45)]; 
[toolbar setBarStyle: UIBarStyleBlackOpaque]; 

// create an array for the buttons 
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:5]; 

// create a standard save button 
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemSave 
           target:self 
           action:@selector(deleteAction:)]; 
saveButton.style = UIBarButtonItemStyleBordered; 
[buttons addObject:saveButton]; 
[saveButton release]; 

// create a standard delete button with the trash icon 
UIBarButtonItem *deleteButton = [[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemTrash 
           target:self 
           action:@selector(deleteAction:)]; 
deleteButton.style = UIBarButtonItemStyleBordered; 
[buttons addObject:deleteButton]; 
[deleteButton release]; 

UIBarButtonItem *addbutton = [[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
           target:self 
           action:@selector(deleteAction:)]; 
addbutton.style = UIBarButtonItemStyleBordered; 
[buttons addObject:addbutton]; 
[addbutton release]; 

UIBarButtonItem *editButton = [[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
           target:self 
           action:@selector(deleteAction:)]; 
editButton.style = UIBarButtonItemStyleBordered; 
[buttons addObject:editButton]; 
[editButton release]; 

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] 
           initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
           target:self 
           action:@selector(deleteAction:)]; 
doneButton.style = UIBarButtonItemStyleBordered; 
[buttons addObject:doneButton]; 
[doneButton release]; 

// put the buttons in the toolbar and release them 
[toolbar setItems:buttons animated:NO]; 
[buttons release]; 

// place the toolbar into the navigation bar 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar]; 
[toolbar release]; 

试试这个代码片段

并在AppDelegate.h文件,你声明这个

UINavigationController *navigationController; 

而且AppDelegate.m文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

// Override point for customization after application launch. 

// Add the view controller's view to the window and display. 
navigationController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[self.window addSubview:navigationController.view]; 
[self.window makeKeyAndVisible]; 

return YES; 
} 
+0

它不工作的朋友。我只是想简单地在导航栏上添加按钮。为了做到这一点,我只是在浏览器上放置导航栏,然后放在视图上。然后在word文件中添加此代码.m文件 – Ajay 2011-06-06 09:06:46

+1

我发布了代码段。在那我添加了5个按钮。看看这个。 :) – 2011-06-06 09:43:40

+0

我应该在哪里编写这段代码 - (void)viewDidLoad {} – Ajay 2011-06-06 09:50:14

2

我想我给ü我的代码,这将解决问题乌尔...

-(void) initializeNavigationalBar { 

self.navigationItem.title = @"What Ever"); 

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:(57/255) green:(57/255) blue:(57/255) alpha:1]; 
UIBarButtonItem *optionBtn; 
optionBtn = [[UIBarButtonItem alloc] 
      initWithImage:[UIImage imageNamed:@"image1.png"] 
      style:UIBarButtonItemStylePlain 
      target:self 
      action:@selector(LoadOption:)]; 
self.navigationItem.leftBarButtonItem = optionBtn; 

// create a toolbar to have two buttons in the right 
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 60, 44.01)]; 
// create the array to hold the buttons, which then gets added to the toolbar 
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:2]; 

UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc] 
           initWithImage:[UIImage imageNamed:@"image2.png"] 
           style:UIBarButtonItemStylePlain target:self 
           action:@selector(decrement:)]; 

[buttons addObject:rightBtn]; 
[previousBtn release]; 
UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] 
          initWithImage:[UIImage imageNamed:@"image3.png"] 
          style:UIBarButtonItemStylePlain target:self 
          action:@selector(increment:)]; 
[buttons addObject:leftBtn]; 
[nextBtn release]; 
[tools setItems:buttons animated:NO]; 
tools.tintColor = [UIColor colorWithRed:(57/255) green:(57/255) blue:(57/255) alpha:1]; 
[buttons release]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools]; 
[tools release];  

}

享受...

+0

感谢您的代码。但是你正在做一个整数除法,所以按钮总是黑色的。只需将255改为255.0,就可以成为一个浮动分区。 – Ricardo 2012-04-12 17:14:58

0

此代码的工作well.just现在我检查你的代码。建设 - >干净的所有目标,然后检查

+0

你好朋友。我可以在导航栏上的按钮位置添加细分受众群 – Ajay 2011-06-06 09:41:40

+0

@ user6271是的确定要在导航栏上添加uisegmentedcontrol – Rams 2011-06-06 09:57:03

+0

如何在细分受众群按钮1上单击替换细分受众群按钮1和其他细分受众群按钮2。 – Ajay 2011-06-06 10:30:54

50

与iOS 5您可以添加更多按钮

self.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:uibarbuttonInstance1, uibarbuttonInstance2, nil]; 

同为右按钮

self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:uibarbuttonInstance1, uibarbuttonInstance2, nil]; 
+0

感谢您的回答。为我节省了很多时间! – Varuna 2012-02-25 08:06:24

+0

是的..无限期地节省了很多时间... +1 – Aditya 2012-08-14 06:22:47

+0

+1。谢谢。这很快实施! – akshay1188 2012-08-16 08:21:23