1

我正在寻找一种在[self.navigationController popToRootViewControllerAnimated:YES];调用时分配 ivar 的方法,类似于在调用 segue 时如何设置值:

if ([segue.identifier isEqualToString:@"login"]) {
    [sender resignFirstResponder];
    HomeController * home = (HomeController *)segue.destinationViewController;
    home.personHome = self.person;

}

我在哪里分配对象变量。当前架构使用[self.navigationController popToRootViewControllerAnimated:YES];

当应用程序加载时 HomeController 是第一个视图,但在它的视图中调用了 Load 方法[self performSegueWithIdentifier:@"login" sender:self];以转到登录屏幕。登录成功弹回。

非常感谢您的建议和指导。

4

2 回答 2

1

这有效:

HomeController *myController = (HomeController *)[self.navigationController.viewControllers objectAtIndex:0];
myController.personHome =self.person ;
[self.navigationController popToViewController:myController animated:YES];
于 2013-11-11T14:17:20.433 回答
0

这就是我让它在 Swift 2.2 中工作的方式:

let myController = self.navigationController?.viewControllers[0] as! HomeController
myController.personHome = self.person
self.navigationController?.popToRootViewControllerAnimated(true)
于 2016-04-01T07:17:59.700 回答