我只想在目标 View Controller 上设置标题,以使其在prepareForSegue:方法的导航 Controller 的导航栏中显示,但是设置标题或navigationItem的方法如下:
[segue.destinationViewController setTitle:@"doesn't work"]; [segue.destinationViewController.navigationItem setTitle:@"this either"];
由于目标的 View Controller 的 View 尚未加载,因此无法正常工作。我可以在不创建自定义目标 View Controller 的情况下执行此操作吗?

最佳答案

尝试像这样访问嵌入在ViewController中的UINavigationController
首先,在界面构建器中为segue提供一个标识符,然后使用prepareForSegue方法访问segue并通过访问您选择的导航 Controller 的topViewController属性来设置标题。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([[segue identifier] isEqualToString:@"yourSegueIdentifier"]) {
        UINavigationController *navController =
           (UINavigationController*)[segue destinationViewController];
        YourViewController *destViewController =
           (YourViewController* )[navController topViewController];

        destViewController.navgationItem.title.text = @"Your new title";
    }
}

关于ios - 在prepareForSegue :期间如何在目标 View Controller 上设置标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17792091/

10-12 04:18