2016-12-21 5 views
0

при интеграции платежного шлюза в моем приложении IOS, я использовал rootViewController свойство, как показано ниже:Что такое rootViewController и когда я его использую?

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 

UINavigationController *controller = [storyboard instantiateViewControllerWithIdentifier:@"navCtrlID"]; 

[[UIApplication sharedApplication].keyWindow setRootViewController:controller]; 

[self.navigationController presentViewController:controller animated:YES completion:nil]; 

Это делает работу, однако теперь я должен нажать кнопку Назад несколько раз, чтобы вернуться.

Почему это так?

+2

Не могли бы вы уточнить вопрос, пожалуйста. Что происходит, когда вы нажимаете кнопку «Назад» несколько раз? – pjc90

+0

, когда я нажимаю кнопку «Назад», он показывает мне пустой экран, при повторном нажатии, похоже, что он возвращается, после нескольких попыток он переходит к предыдущему контроллеру. –

ответ

1

RootViewController - это первый ViewController в стеке приложений. Вы должны установить его только в вашем AppDelegate на методе:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 

В вашем случае, так как вы его экземпляр из раскадровки, в NavigationController с ID «navCtrlID» будет отображаться первым. Если у него есть только один ViewController, при нажатии на него он не должен появляться в стеке навигации.

Если у вас есть ViewControllers, представленные перед добавлением этого конкретного вида, вы не должны показывать его так. Вместо этого используйте, например:

[self presentViewController: controller animated:YES completion:nil]; 
+0

Да, у меня есть много контроллеров просмотра, я использую код, который вы сказали, но он показывает мне то же самое. –

+0

Какие элементы у вас есть перед представлением этого нового навигационного контроллера? – LopesFigueiredo

+0

Попробуйте удалить эту строку: "[[UIApplication sharedApplication] .keyWindow setRootViewController: controller];" – LopesFigueiredo

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