iphone应用程序 - 为NavigationController创建一个主页按钮?

问题描述:

这是默认情况下xcode的功能:当您在导航控制器中查看第一个视图时,“返回”按钮不会出现在标题中。后退按钮仅在您前往另一个由第一个视图实例化的视图时才会出现。iphone应用程序 - 为NavigationController创建一个主页按钮?

我想要一个主页按钮或后退按钮以便在第一个视图中出现。点击它会执行一个特定的操作....就像说改变rootviewcontroller。我怎样才能让这个按钮出现,以及如何仅在第一个视图中覆盖它的行为?在任何其他视图中,后退按钮的行为应该作为默认行为。

在你的根视图控制器的viewDidLoad方法,初始化一个UIBarButtonItem并将其添加到导航控制器的工具栏:

UIBarButtonItem *homeButton = [[UIBarButtonItem alloc] 
           initWithTitle:@"Home" 
           target:[AppDelegate sharedDelegate] 
           action:@selector(changeRootViewController)]; 
[self.navigationItem setLeftBarButton:homeButton animated:NO]; 

target应该是你的应用程序委托类,如果你想换出根视图控制器。在该类中创建一个名为changeRootViewController的方法来执行视图控制器交换。

您可以使用initWithImage:更改homeButton以使用图像而不是文字。

试试这个:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
NSString* backBtnImg = @"myImage"; 
UIImage *buttonImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:backBtnImg ofType:@"png"]]; 
[button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
[button setTitle:@"back" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(myAction) forControlEvents:UIControlEventTouchUpInside]; 
[button setFrame:CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height)]; 

UIBarButtonItem *btnItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
self.navigationItem.leftBarButtonItem = btnItem;