带有“后退”按钮的UINavigationBar。使用XIB创建

时间:2012-03-08 13:02:06

标签: ios uinavigationbar

我的问题是下一个: 在界面构建器中,我创建了UINavigationBar,我想创建“后退”按钮项,但我没有看到任何按钮。

我使用此代码:

    UIBarButtonItem *myBarButtonItem = [[UIBarButtonItem alloc] init];
    myBarButtonItem.title = @"Back";
    mynavBar.backItem.backBarButtonItem = myBarButtonItem;

mynavBar - 这是我的IBOutlet。

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

您可以将导航栏用作独立控件或与导航控制器配合使用。当您使用导航栏作为独立控件时,可以使用导航项(UINavigationItem类的实例)来指定要显示的按钮或自定义视图。

所以在你的情况下你会使用这样的东西:

UIBarButtonItem *myBarButtonItem = [[[UIBarButtonItem alloc] init] autorelease];
myBarButtonItem.title = @"Back";

UINavigationItem *right = [[[UINavigationItem alloc] initWithTitle:@"Hello!"] autorelease];
right.leftBarButtonItem = myBarButtonItem;

[mynavBar pushNavigationItem:right animated:YES];

您可能希望考虑使用UINavigationViewController

答案 1 :(得分:2)

如果您想要左侧的自定义按钮,请使用mynavBar.leftBarButtonItem而不是backItem。 在您通过pushViewController:呈现另一个viewcontroller后,backItem只会显示。 (如果您没有设置自己的后退按钮,将自动创建带有前一个viewController标题的默认backButton。)

//编辑:也许你会寻找: Draw custom Back button on iPhone Navigation Bar

答案 2 :(得分:1)

我认为这是苹果希望实现这一目标的实际方式。

放入UINavigationBar

将出口设置为UINavigationItem

这是捕获

重写navigationItem属性以返回您创建的UINavigationItem。

就是这样。

-(UINavigationItem *) navigationItem
{
    return self.navigationItem1;
}

如果你的navigationItem仍然在UINavigationBar中,我认为你也需要有一个强大的UINavigation Bar出口。如果我在这里错了,请纠正我。