OGeek|极客世界-中国程序员成长平台

标题: ios - 知道何时用手势解除 Split View Controller 的主控 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 07:24
标题: ios - 知道何时用手势解除 Split View Controller 的主控

我正在 iOS 7 上实现一个主从应用程序,主视图 Controller 是一个导航 Controller ,它可以在两个 TableView Controller 中导航。细节是一个显示图像的简单 View Controller 。

我已经详细实现了 UISplitViewController 方法:

- (BOOL) splitViewControllerUISplitViewController *)svc shouldHideViewControllerUIViewController *)vc inOrientationUIInterfaceOrientation)orientation
{
    return UIInterfaceOrientationIsPortrait(orientation);
}

- (void) splitViewControllerUISplitViewController *)svc willHideViewControllerUIViewController *)aViewController withBarButtonItemUIBarButtonItem *)barButtonItem forPopoverControllerUIPopoverController *)pc
{
    UINavigationController* nav= (UINavigationController*)aViewController;
    barButtonItem.title= nav.topViewController.title;
    self.navigationItem.leftBarButtonItem= barButtonItem;
}

- (void) splitViewControllerUISplitViewController *)svc willShowViewControllerUIViewController *)aViewController invalidatingBarButtonItemUIBarButtonItem *)barButtonItem
{
    self.navigationItem.leftBarButtonItem= nil;
}

问题在于,当用户使用手势关闭主视图 Controller 时,不会调用 splitViewController:willHideViewController:withBarButtonItem:forPopoverController:

这样的问题是,如果用户通过主导航 Controller 导航然后关闭主控,标签栏按钮项目显示旧标题。

为了更清楚,我将逐步解释发生了什么。主导航 Controller 的根导航 Controller 的标题是“Top Places”。推送的 View Controller 的标题是“照片”。当应用启动时,纵向模式下没有主人:

enter image description here

用户呈现“Top Places” View Controller :

enter image description here

然后用户导航到第二个 View Controller :“照片”:

enter image description here

然后用户关闭主人,但标签栏按钮项目仍然保留它的旧标题“Top Places”:

enter image description here

问题是 Split View Controller 委托(delegate)在通过手势解除主控时没有调用方法。



Best Answer-推荐答案


根本没有 UISplitViewControllerDelegate 委托(delegate)方法来检测在纵向时弹出框何时被解除。它是如何被解雇的并不重要。如果您想知道,请为弹出框 Controller 设置一个委托(delegate)。

从横向旋转到纵向时会调用 splitViewController:willHideViewController:withBarButtonItem:forPopoverController: 委托(delegate)方法。

关于ios - 知道何时用手势解除 Split View Controller 的主控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702557/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4