ios)Object-c。如何自定义导航栏上的按钮

问题描述:

我正在开发具有自定义导航栏的基于导航的应用程序。我成功了一个带有图像和按钮的导航栏。但是我不知道如何让自定义按钮.. :(ios)Object-c。如何自定义导航栏上的按钮

这是增加了导航栏上的“主”按钮的代码。(在视图控制器,initWithNibName方法)

if (self) { 
    // Custom initialization. 

    //set navigation id to I to inform that that page is inforview 
    navID = @"I"; 

      //adds the button on the navigation bar 
    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle:@"Main" style:UIBarButtonItemStyleBordered target:self action:@selector(goBack:)]; 
    self.navigationItem.leftBarButtonItem = button; 
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 
    [button release]; 
    [navID release]; 

} 

谢谢

我创建了一个自定义按钮,并把它应用到的UIBarButtonItem。 没有错误,但没有显示在导航栏:( 上这是我的代码 -

//create a custom button 
    UIImage *image = [UIImage imageNamed:@"TESTButton.png"]; 
    UIButton *myCustomButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    myCustomButton.bounds = CGRectMake(0, 0, image.size.width, image.size.height);  
    [myCustomButton setImage:image forState:UIControlStateNormal]; 
    [myCustomButton addTarget:nil action:@selector(goBack:) forControlEvents:UIControlEventTouchUpInside]; 


    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:myCustomButton]; 
    self.navigationItem.leftBarButtonItem = button; 
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 

任何人都可以修复我的代码? :)

最简单的方法是使用:

UIButton *yourCustomButton = .... 
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:yourCustomButton]; 
self.navigationItem.leftBarButtonItem = barButtonItem; 
[barButtonItem release]; 
+0

嗯,你可以包括yourCustomButton代码? – Leanne

+0

这取决于你需要什么。您可以使用'[UIButton buttonWithType:]'创建按钮并在代码中进行设置。或者您可以在xib中创建按钮并将其用于您的自定义'UIBarButtonItem'。没有“通用”的代码。 – Andriy