背景
我有一个 iPad 拆分视图应用程序。拆分视图是窗口的根视图控制器。我需要应用程序的登录屏幕,因此我将其呈现如下:[self.splitViewController presentViewController:self.loginView animated:NO completion:nil];
。我在主视图上有一个弹出窗口,锚定在导航栏UIBarButtonItem
上,这有助于用户注销。这是工作 gr8。
问题:
我需要支持两个方向,因此主视图也必须以纵向模式显示。我面临的第一个问题是当用户以纵向模式退出应用程序时,主视图不会被关闭并且登录视图当主视图仍然可见时显示。我设法通过复制左侧栏按钮上的点击事件来解决此问题,如下所示:
[self.detailViewController.navigationItem.leftBarButtonItem.target performSelector:self.detailViewController.navigationItem.leftBarButtonItem.action];
这就产生了第二个问题。当我注销时,上面的代码片段正确地关闭了主视图并看到了登录视图。但是现在,如果我将方向更改为横向并再次登录,主视图将被黑色条替换(宽度等于主视图)。我认为splitview 仍然认为它在 portarit 视图中,并且方向更改不会传播到 splitviewcontroller。任何人都可以帮我解决这个问题。
到目前为止我做了什么:
我尝试-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
使用详细视图上的更新方向显式调用,但它不起作用。
我将应用程序的 rootview 控制器重置为相同的 splitviewcontroller 实例,- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
希望这可以用作刷新,但它没有注意。
我不知道从这里去哪里。重要提示:我在 iOS 6.0 上。非常感谢任何帮助。