旋转UIView – willRotateToInterfaceOrientation不被调用
我试图自动控制一个视图,我有这里解释相同的问题: willRotateToInterfaceOrientation没有被调用 。
即使我实现了shouldAutorotateToInterfaceOrientation
并返回YES,在我实现的每个UIViewController
子类中; willRotateToInterfaceOrientation
没有被调用。
也许有人可以告诉我我错过了什么。 我有以下视图控制器结构(我希望这是清楚的..):
NavigationController (Programatically) -with root > TabBarController (Programatically) -with tab item > NavigationController (Programatically) -with root > UITableViewController (a Subclass) -pushed to navigator controller > UIViewController (a Subclass).
我希望有一个人可以帮助我。 提前致谢!
您可以尝试通过rootviewcontroller将您的控制器(NavigationController)插入窗口。
如果不适合你,使用通知UIApplicationWillChangeStatusBarOrientationNotification
编辑
作品:
// custom controller TestController *t = [[TestController alloc] init]; // navigaton UINavigationController *controllerinsertIntoTab = [[UINavigationController alloc] initWithRootViewController:t]; // tab bar UITabBarController *tabbarController = [[UITabBarController alloc] init]; [tabbarController addChildViewController:controllerinsertIntoTab]; // first navigation UINavigationController *controller = [[UINavigationController alloc] initWithRootViewController:tabbarController]; [self.window setRootViewController:controller];
特别为你https://github.com/sakrist/TestControllers
我希望这是有帮助的
如果您没有在任何视图控制器的willAutoRotateToInterfaceOrientation
上接收callback, willAutoRotateToInterfaceOrientation
视图控制器添加为您的根视图控制器的子视图控制器。
例如; 说self.viewController
是你的根视图控制器和childViewController
是你想获得自动旋转callback视图控制器,添加下面的代码行;
[self.viewController addChildViewController:childViewController];
实际上,作为子视图控制器添加到任何获取轮换callback视图控制器也将工作。
希望能帮助到你。