将界面按钮项拖放到Interface Builder中故事板的视图控制器导航栏上很容易。这样,您可以设置视图控制器的导航项目的出口leftBarButtonItem
和rightBarButtonItem
。但也有一个backBarButtonItem
插座,并且如何设置它并不明显。如何使用Interface Builder设置自定义后台按钮项目?在故事板中配置视图控制器导航条的backBarButtonItem
回答
选择要更改其导航项目视图控制器。显示视图控制器标识的黑色条变为其引用对象的图标化托盘。
将对象库中的酒吧按钮项目拖放到托盘上。
- 在视图控制器的导航项目在左手侧的主要目的盘上单击右键。将新添加的按钮连接为导航项目的
backBarButtonItem
插座。
- 选择栏按钮,并在你的属性检查器选择的方式进行配置。
在界面生成器中,您可以更改导航项返回按钮的标题。
以编程方式,您可以在视图控制器的viewDidLoad方法中设置自定义后退按钮。在这个例子中,我们将按钮的图像设置为名为“customImage.png”的图像:
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStyleBordered target:self action:nil];
// Set custom image here
backButton.image = [UIImage imageNamed:@"customImage.png"];
self.navigationItem.backBarButtonItem = backButton;
}
如@wcochran如上所述,与viewControllers工作时被推到一个navigationController的堆栈,该backBarButtonItem出口已经有线和不能改变。此外,选择儿童VC的navigationItem并更改IB中的后退按钮文本不会达到您所期望的。
现在你可能会认为替换孩子VC的backBarButtonItem可以解决问题,但事实并非如此。令人迷惑的是,如果你想设置一个孩子VC的后退按钮的标题,你必须设置其父的后退按钮标题,像这样(!):
- (void)viewWillAppear:(BOOL)animated // in the parent VC!
{
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
}
这不会做父VC上的任何东西。事实上,如果父级是navigationController的RootViewController,则根本不会有后退按钮。但孩子会继承(或拾取)您创建的后退按钮。
这只适用于直接子VC,所以如果你想通过navigationController的堆栈保持标签下来,你需要将它设置在每个父级。
感谢#iphonedev中的@wiliz向我解释这一点。
我很早就回到iOS开发中,尽管我们需要做出诸如此类的黑客攻击, iOS 3.1.2的情况并没有太大的改变。谢谢你的回答。 – 2013-08-22 08:58:38
正如@AdamBlock指出的,你必须在父VC中设置正确的东西。
他显示了如何以编程方式执行此操作。在界面构建器中也可以这样做。
- 选择父VC
- 选择导航项目
- 打开属性检查器
- 设置标题的后退按钮。
- 1. 故事板 - 视图控制器中的导航控制器
- 2. ios7 - 故事板 - 无法在我的视图控制器中设置导航栏
- 3. Xcode - 故事板 - 导航控制器
- 4. 导航视图控制器之间没有故事板/ xibs
- 5. 没有桌面控制器的故事板导航控制器
- 6. 故事板视图控制器到编码视图控制器
- 7. iPhone在故事板中呈现和解散导航视图控制器?
- 8. 使用故事板设置导航控制器的问题
- 9. 推送在导航控制器(故事板)中不起作用
- 10. 如何设置故事板中子视图的控制器?
- 11. iOS 5故事板 - 视图控制器中的表格视图
- 12. 如何删除故事板中的导航控制器
- 13. 故事板:更改故事板中指定的UINavigation控制器的根视图
- 14. 故事板 - 视图控制器到标签栏控制器
- 15. 如何从现有的视图控制器建立导航控制器画在故事板?
- 16. 故事板中的视图控制器在哪里启动?
- 17. 故事板控制器不解除分配故事板负载
- 18. 导航控制器与故事板[iPhone]的景观
- 19. 使用故事板与uipageviewcontroller和导航控制器的iPad Bug
- 20. 在故事板中创建中央注销视图控制器
- 21. 设置视图控制器故事板ID不起作用
- 22. 在故事板中呈现自定义视图控制器?
- 23. 在故事板中更改视图控制器
- 24. 故事板导航项目链接到UI控制器
- 25. UIStoryBoard导航控制器通过故事板赛格瑞
- 26. xcode4.2.1 - 故事板 - 导航控制器 - 标题栏颜色
- 27. 带有类别的故事板中的表视图控制器
- 28. 从UIView导航到UIViewController没有故事板和导航控制器
- 29. 在导航控制器中的故事板中的两个视图之间的塞格/过渡
- 30. 故事板中新视图控制器的类
我的导航项目已经有了一个'backBarButtonItem'连线(因为它是push segue的目的地)并且它是不可更改的。似乎没有办法真正改变后退按钮的标题 - 在属性检查器中设置“后退按钮”字段不起作用。 – wcochran 2012-07-19 18:45:18
如果您正在寻求解决方案,并且您发现以编程方式执行此操作令人不快,我鼓励您为此创建一个单独的问题。不幸的是,你的情况我还没有遇到过。 – warrenm 2012-07-19 19:24:34
@wcochran - 这也发生在我身上。这是Xcode中的一个小疏忽,解决方法是在对象库中选择UIBarButtonItem,然后将其拖到UINavigationItem的左侧栏按钮项上。你会看到一个蓝色的矩形出现,然后它会设置它,你可以像往常一样配置它。 – 2014-12-07 21:41:19