0

Это то, что я пытаюсь сделать: у меня есть приложение, ориентированное на navigationController, и множество разных представлений. Предположим, что на третьем представлении я хочу просмотреть представление 4 с помощью UIModalTransitionStyleCoverVertical. То, что я сделал это, используя этот код:Назад с UIModalTransitionStyle

-(void)changeView4{ 
    View4 *screen = [[View4 alloc]initWithNibName:nil bundle:nil]; 
    screen.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self presentModalViewController:screen animated:YES];  
} 

На представлении 4 У меня есть кнопка, чтобы вернуться обратно в режим 3, но проблема в том, что, когда я нажимаю его, View3 не показывать навигацию контроллер, поэтому я не могу вернуться к просмотру 2. Может ли кто-нибудь мне помочь? Благодарю.

+0

Какой код возвращает кнопка для просмотра 3? – Tim

+0

Это IBAction, View3 * view3 = [[View 3 alloc] initWithNibName: nil bundle: nil]; view3.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentModalViewController: view3 animated: YES]; [[self navigationController] комплектNavigationBarHidden: NO анимированный: YES]; Большое спасибо! – joan2404

ответ

0

Когда вы «вернетесь» к своему третьему виду, вы фактически не вернетесь к третьему виду, которое вы показали ранее; вместо этого вы создаете третий вид и представляете его над своим четвертым видом. В этот момент, ваш стек вид выглядит следующим образом:

View 3 // don't want this! 
View 4 
View 3 // want to get back to here! 
View 2 
View 1 

Вместо того чтобы создавать новый View3 экземпляр, вы должны уволить уже существующий четвертый вид используя что-то вроде следующего:

// Inside View4 
- (IBAction)dismissView4:(id)sender { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 

Это должно вернитесь к третьему виду, которое у вас было раньше, на котором должна отображаться панель навигации с соответствующей кнопкой возврата.

+0

Хорошо, спасибо, это сработало отлично! – joan2404