【问题标题】:iphone app - Create a home button for NavigationController?iphone 应用程序 - 为 NavigationController 创建主页按钮?
【发布时间】:2012-05-28 21:20:00
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c uinavigationcontroller


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      试试这个:

      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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多