我只想在目标 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/