ios – 在UISplitView中选择导航后,DetailView消失
我在项目中面临一个小问题.我有一个简单的IPad应用程序,在Lanscape方向使用SplitView. MasterViewController是一个tableview,而DetailView是WebView,如下所示:
上图导致以下结果: 之后,我把整个东西放在ECSlidingViewController里面.点击MasterViewController中的“菜单”按钮将显示侧面菜单,如下所示: 现在我可以点击菜单中的其他选项,让我们说我已经在菜单中点击了“联系人”,关联的视图控制器将出现如下所示:(此视图控制器没有任何详细视图) 到目前为止一切都很好,正是我想要的!现在,当我再次点击“菜单”按钮以显示菜单并再次选择“导航”以显示桌面视图时,问题就开始了.点击“导航”时,它会显示MasterView,但会隐藏DetailView,如下所示: 除此之外,点击上面tableivew中的任何条目将导致程序崩溃,并在控制台中显示以下消息:
有人可以调查问题并告诉问题可能在哪里.提前致谢. 更新: 在聊天时与用户交谈后,我点击菜单中的导航后,出现的下一件事只是主视图和实际上没有加载splitview.看起来这是问题,但我不知道如何解决这个问题. 更新: ECSlidingView如何与SplitView集成 在收到评论询问ECSlidingView如何连接到项目和SplitView后,我正在更新问题. 我创建了一个名为’MainSplitViewController’的类,它继承自UISplitViewController,并在身份检查器的故事板中将它与splitView连接起来.我也给它了“SplitTop”的故事板ID. 然后在我的InitialViewController中,我将SplitView称为topviewcontroller,如下所示: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"SplitTop"]; } 当您在MasterViewController上按下“Menu”按钮时,会出现ECSlidingView菜单,如上图所示.该菜单按钮使用IBAction来显示ECSlidingView: - (IBAction)revealMenu:(id)sender { [self.slidingViewController anchorTopViewTo:ECRight]; } 解决方法
我还在我正在研究的测试项目中使用了ECSlidingViewController.我想我能够解决你遇到的问题.
首先,这个问题与SplitView或其中的导航控制器没有任何关系,因为你可以删除SplitView,它将正常工作.此问题完全与您如何在ECSlidingView库中集成SplitViewController相关联. 在浏览了上面发布的图像之后,在开始处理SplitView之前,似乎已将ECSlidingViewController添加到项目中.这意味着在您的代码中,导航菜单仍然连接到您的MasterViewController.它应该连接到SplitViewController. 由于您的更新问题表明您在InitialView中调用SplitView,如下所示: if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"SplitTop"]; } 但上面的代码只是将它设置为TopViewController.我检查了ECSlidingView库,您会注意到MenuViewController处理了显示的Menu表视图.这意味着您必须在此课程中进行必要的更改. 由于MainSplitViewController类的StoryBoard ID设置为“SplitTop”,您可以将其添加到MenuViewController类的ViewDidLoad部分,其中定义了绘制Menu项的整个数组. 希望有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |