2014-09-01 3 views
0

Таким образом, после долгих исследований, если наконец-то нашел код, который позволяет мне перейти к другой точке зрения, не давая мне какие-либо ошибки:Добавить анимацию для просмотра изменений

UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"]; 
[[[[UIApplication sharedApplication] delegate] window] setRootViewController:vc]; 

Единственная проблема с этим кодом является то, что Eсть нет анимации. Я хочу как-то добавить крест, разрешив анимацию, если это возможно.

Другая серьезная проблема заключается в том, что она показывает вид два раза (несколько раз три). Таким образом, он переходит ко второму виду, а затем менее чем через секунду он снова показывает страницу. Я знаю это, потому что iAd перезагружается, и когда я нажимаю кнопку, которая переходит на другую страницу, она прерывается второй страницей.

ответ

0

Чтобы изменить представление на другое (навигационное), вам не нужно, чтобы setRootViewController: всегда устанавливал его как контроллер корневого представления.

вы можете использовать UINavigationController и установить UIViewController как корень, а затем изменить СЪЕМКА Используйте pushViewController: метод навигации контроллера, как

//Pre condition - already a viewController is root view controller of navigation controller. 
UIViewController * vc = [self.storyboard instantiateViewControllerWithIdentifier:@"gameOverPage"]; 
[self.navigationController pushViewController:vc animted:YES]; 

Другой способ,

[self presentViewController:vc animated:YES completion:nil]; 

Подробнее presentViewController, UINavigationController

+0

'[self.navigationController pushViewController: vc animted: YES];' ничего не делает и '[self p resentViewController: vc animated: YES complete: nil]; 'spams me с этой ошибкой:' Предупреждение: попытка представить в , чей вид не находится в иерархии окон! ' – Andrew

+0

Откуда вы звоните 'presentViewController: vc'? из 'viewDidLoad'? – Akhilrajtr

+0

Нет. Я называю это, когда игрок проиграл игру. Кстати, я видел много сообщений, в которых люди используют presentViewController в viewDidLoad. Зачем загружать новое представление, когда только что загружено ваше текущее представление? Я не могу понять причину этого. – Andrew

Смежные вопросы