【发布时间】:2014-12-23 13:12:42
【问题描述】:
问题
在 UISplitViewController 折叠显示中,如何以编程方式返回主视图控制器?
详情
我搜索了它,但没有找到解决方案。不确定我是否使用了正确的关键字。这就是我显示详细视图控制器的方式:
[self showDetailViewController:[[UINavigationController alloc] initWithRootViewController:detail] sender:self];
我也分别尝试了这3种方法,但都没有奏效:
if (self.splitViewController.collapsed) {
UIBarButtonItem *backButtonItem = self.navigationItem.leftBarButtonItem;
(1):[backButtonItem.target performSelector:backButtonItem.action];
(2):[[UIApplication sharedApplication] sendAction:backButtonItem.action to:backButtonItem.target from:nil forEvent:nil];
(3):objc_msgSend(backButtonItem.target, backButtonItem.action);
}
详细的VC viewDidLoad 中设置的导航项:
self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
self.navigationItem.leftItemsSupplementBackButton = YES;
【问题讨论】:
-
我遇到了完全相同的问题。你问这个问题已经有一段时间了;你有没有想出另一个解决方案,或者你只是卡住了?我很想听听您取得的任何进展。
-
@chrisbuchholz 现在我认为,不应该鼓励忽略细节,因为在扩展显示中没有忽略。就我而言,我隐藏了我的 rightBarButtonItem 以指示当前操作已执行,您需要自己导航回来。(我的详细 VC 是用于添加一些记录)
-
我的详细视图用于编辑项目。如果我点击视图中的删除按钮,则没有要编辑的项目,这会使视图无用。现在它只是使视图无效,这在 iPad 和横向的 6 Plus 上非常好,但否则它是无用的,应该发生的是应该显示带有将您带到详细视图的项目的 tableview。