Erz*_*iel 21 objective-c uinavigationbar ios
当我创建自定义后退按钮时,我使用以下代码:
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc]initWithTitle:@"Yeah" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonPressed:)];
self.navigationItem.leftBarButtonItem = leftButton;
Run Code Online (Sandbox Code Playgroud)
这工作正常,我得到了这个结果:
我会得到相同的结果,但左边有一个箭头,就像这样(当它是一个标准的后退按钮,而不是一个自定义的按钮):
我怎么能简单地添加这个箭头?
Erz*_*iel 30
最后,这里是我用来与标准左箭头定义后退按钮标题中的片段在当前视图,而不是在父视图:
- (void)viewDidLoad {
[super viewDidLoad];
[self setTitle:@"Current View"];
// Get the previous view controller
UIViewController *previousVC = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count - 2];
// Create a UIBarButtonItem
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"FooBar" style:UIBarButtonItemStyleBordered target:self action:@selector(yourSelector)];
// Associate the barButtonItem to the previous view
[previousVC.navigationItem setBackBarButtonItem:barButtonItem];
}
Run Code Online (Sandbox Code Playgroud)
这是结果:
注:但是,因为它无法在backBarButtonItem添加一个动作,你可以参考这个伟大的职位,如果你想让它.
更新了Swift
// Prev - no chevron...
//navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back !", style: .plain, target: self, action: #selector(backPressed))
// adds the chevron
let vc = navigationController?.viewControllers.first
let button = UIBarButtonItem(title: "Go Back", style: .plain, target: self, action: #selector(backPressed))
vc?.navigationItem.backBarButtonItem = button
Run Code Online (Sandbox Code Playgroud)
Bla*_*nny 17
最简单的方法是在父控制器中设置标题(即您要导航回的控制器).如果您不希望它与该VC视图中显示的实际标题相同,您可以将viewWillDisappear中的标题更改为您在下一个VC的后退按钮上所需的标题,然后将其更改回您想要的内容. viewWillAppear中的父级.
如果您使用的是故事板,您也可以直接在IB中设置后面的标题.
最后,为了创建自定义后退按钮,您可以执行以下操作:
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Details" style:UIBarButtonItemStyleBordered target:nil action:nil];
Run Code Online (Sandbox Code Playgroud)
...确保在演示(或父级)视图控制器中执行此操作,而不是正在加载的视图控制器(显示的控制器).
归档时间: |
|
查看次数: |
38853 次 |
最近记录: |