Assigning a variable during [self.navigationController popToRootViewControllerAnimated:YES];

StackOverflow https://stackoverflow.com/questions/19907067

  •  30-07-2022
  •  | 
  •  

문제

I am looking for a way to assign ivar when [self.navigationController popToRootViewControllerAnimated:YES]; is called, similarly to how you can set values when a segue is called:

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

}

where I am assigning an objects variables. The current architecture uses [self.navigationController popToRootViewControllerAnimated:YES];

When the application loads the HomeController is the first view but in its view did Load methods it calls [self performSegueWithIdentifier:@"login" sender:self]; to go to the login screen. Successfully login in pops back.

Advice and direction is greatly appreciated.

도움이 되었습니까?

해결책

This worked:

HomeController *myController = (HomeController *)[self.navigationController.viewControllers objectAtIndex:0];
myController.personHome =self.person ;
[self.navigationController popToViewController:myController animated:YES];

다른 팁

This is how I made it work in Swift 2.2:

let myController = self.navigationController?.viewControllers[0] as! HomeController
myController.personHome = self.person
self.navigationController?.popToRootViewControllerAnimated(true)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top