1

这是 xcode 默认所做的:当您在导航控制器中查看第一个视图时,“返回”按钮不会出现在标题中。后退按钮仅在您前往由第一个视图实例化的另一个视图时出现。

我希望在您处于第一个视图时出现主页按钮或返回按钮。单击它会执行某个操作....比如更改 rootviewcontroller。我怎样才能让这个按钮出现,我如何只在第一个视图上覆盖它的行为?当在任何其他视图上时,后退按钮的行为应该默认工作。

4

2 回答 2

0

试试这个:

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;
于 2012-05-28T13:13:58.160 回答
0

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

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

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

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

于 2012-05-28T13:20:00.260 回答