在导航栏上添加两个以上的按钮

时间:2011-06-06 08:30:25

标签: iphone objective-c cocoa-touch uinavigationbar

我正在尝试这个,但它不起作用。

-(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];
}

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:50)

使用iOS 5,您可以添加更多按钮

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

右键按钮

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

答案 1 :(得分: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;
}

答案 2 :(得分: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];    

}

...享受

答案 3 :(得分:0)

这段代码运行良好。现在我检查你的代码。构建 - >清除所有目标,然后检查