Przyczyną tego jest to, że viewController przodek nie jest prawidłowo ustawiony. na przykład wyobrazić:
UIViewController * myController = ... // a view controller without a proper ancestor
teraz:
myController.tabBarController == nil
Dlatego:
[myController presentModalViewController:otherController];
Czy uda (pokazując na podstawie paska kart). Rozwiązaniem jest dodanie MyController jego przodka poprzez
[parentController addChildViewController:myController];
Teraz parentController
musi zostać dodany do innego kontrolera w taki sam sposób i tak dalej, aż jeden korzeń to tabController. Ta funkcja jest dostępna tylko w systemie iOS 5+. Jeśli tworzysz na system iOS 4 lub wcześniejszy, będziesz musiał obejść ten problem, upewniając się, że wszystkie kontrolery są bezpośrednio dodane do kontrolera UINav lub UITab. Jeśli nie jest to możliwe, będziesz musiał uzyskać dostęp do UITabBarController za pośrednictwem zmiennej globalnej.
użyłem globalny Dzięki –