繁体   English   中英

prepareForSegue更改后退按钮标题

[英]prepareForSegue change backbutton title

我将按钮从按钮推到新视图,并想更改后退按钮的标题。 您能帮我这段代码有什么问题吗?

这是一个代码片段:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"settings"]) {
        NSLog(@"prepareForSegue: %@%@", segue.identifier, segue.destinationViewController);

        UIViewController *viewController = [segue destinationViewController];
        viewController.navigationItem.backBarButtonItem.title = @"Back";

        [segue.destinationViewController setTitle:@"WeekView"];
    }
}

setTitle确实起作用。 提前致谢!!

UIViewController的视图尚未加载,因此您首先设置标题,然后执行视图加载代码,并将其设置为默认标题。 尝试在目标视图控制器的viewDidLoad或viewWillAppear方法中设置后退按钮标题。

视图控制器的title属性已设置并起作用,因为segue已经实例化了视图控制器本身。

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]]; 通常应该在viewDidLoad中完成,当切换到另一个视图控制器时更改导航按钮标题不是一个好主意。

self.navigationItem.backBarButtonItem默认为nil。 因此,如果为其设置标题,则不会发生任何事情,因为它会影响nil地址对象。 这不会引发错误,因为Objective-C允许传递nil个对象。

解答:您必须创建自己的按钮对象才能设置其标题。 您可以initWithTitle或创建它,然后再设置标题。( 此处为Explianed

供你参考 :

newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"Home" style: UIBarButtonItemStyleBordered target: self action: @selector(Home:)];
    self.navigationItem.leftBarButtonItem=newBackButton;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM