Как убрать множественный вид из суперпредставления - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть некоторое представление, одно вызов другого таким образом:

Из первого просмотра:

MyViewController *contr1 = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.view addSubview:contr1.view];

Из второго просмотра:

MyViewController2 *contr2 = [[MyViewController2 alloc] initWithNibName:@"MyViewController2" bundle:nil];
[self.view addSubview:contr2.view];

сейчасТретий пользовательский интерфейс Я хочу вернуться назад при первом обновлении его (вызывая viewDidLoad).Как я могу сделать?

1 Ответ

1 голос
/ 05 ноября 2011

Прежде всего - вы делаете это неправильно.

Поскольку вы используете контроллеры представления, представьте их модально или нажмите их:

MyViewController2 *contr2 = [[MyViewController2 alloc] initWithNibName:@"MyViewController2" bundle:nil];
[self presentModalViewController:contr2];

Если вы хотите отменить модальные контроллеры точноВаш корневой контроллер представления вы должны получить указатель на него в контроллере, который вы используете в настоящее время, и отправить ему сообщение, чтобы закрыть все модальные представления, которые есть на нем.

- (IBAction)doHomePage:(id)sender {
  MyAppDelegate *appDelegate = (MyAppDelegate *)[UIApplication sharedApplication].delegate;
  [appDelegate.navigationController.rootViewController dismissModalViewControllerAnimated:YES];
}

Также вместо viewDidLoad: выВозможно, вы захотите использовать viewWillAppear: или viewDidAppear:.

Извините заранее, если в коде есть некоторые опечатки, так как я написал его вручную.

...