【问题标题】:issue adding a leftBarButtonItem to nav bar将 leftBarButtonItem 添加到导航栏的问题
【发布时间】:2012-04-30 22:16:23
【问题描述】:

我有一个 UINavigationController,我的 AHViewController 作为根视图控制器。

然后我尝试从 AHViewController 的 viewDidLoad 中添加一个左栏按钮项:

UIButton * backButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [backButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [backButton setImage:[UIImage imageNamed:@"grid.png"] forState:UIControlStateNormal];
    UIBarButtonItem *backButtonBarItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    //[self.navigationItem setLeftBarButtonItem:backButtonBarItem];
    [self.navigationController.navigationItem setLeftBarButtonItem:backButtonBarItem];
    [backButtonBarItem release];

但是,我什么也没看到。这是为什么呢?

【问题讨论】:

    标签: iphone objective-c ios ipad uinavigationcontroller


    【解决方案1】:

    代替:

    [self.navigationController.navigationItem setLeftBarButtonItem:backButtonBarItem];
    

    这样做:

    [self.navigationItem setLeftBarButtonItem:backButtonBarItem];
    

    UINavigationController 使用顶视图控制器的 navigationItem,而不是它的(UINavigationController 的)导航项属性。

    【讨论】:

    • @adit 尝试使用 -initWithTitle:style:target:action: 制作一个简单的 UIBarButtonItem,看看是否可以让它以这种方式出现。如果这可行,则问题是使用 UIButton 作为栏按钮项的自定义视图,或者您设置 UIButton 的方式存在问题。
    【解决方案2】:

    感谢“Simon Golden”为我解答工作。

    之前:(这不会显示我的按钮)

    self.navigationItem.LeftBarButtonItem: backButtonItem;
    

    之后:(This Work for me 和按钮出现)

    [self.navigationItem setLeftBarButtonItem: backButtonItem];
    

    如果 StoryBoard 在 ViewController 中没有 LeftBarButtonItem 和 RightBarButtonItem,我们必须设置 Button(setLeft/RightBarButtonItem)。

    否则只需简单更改Item的属性(self.navigationItem.Left/RightBarButtonItem)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      相关资源
      最近更新 更多