Я думаю, что ваша проблема в том, что UITabBarController
и UINavigationController
- это те контроллеры, которые не могут быть обработаны так, как вы делаете.
Вам лучше создать подкласс UIWindow
в app delegate
и переместите метод -(IBAction)tabtoview:(id)sender;
в подкласс UIWindow
.Я пытался, и это работает.
Причина в том, что у вас должен быть контроллер, чтобы нести ответственность за переключение представлений .То, что вы пытаетесь сделать, это менять контроллеры, а не представления.И это конфликт.Вкладки являются частью UITabController
, они не являются представлениями!Это также та же история для UINavigationController
.
Итак, если вы просто меняете представления, вы можете сделать это прямо в одном из ваших viewControllers, но замена контроллера на другой (т. Е. UIViewcontroller
с UITabBarController
) должна обрабатываться на более высоком уровне,т.е. приложение делегат.Единственный экземпляр, доступный на этом уровне, это ваш UIWindow
.