【问题标题】:SWRevealViewController how to know which frontViewController has called the RearViewcontrollerSWRevealViewController 如何知道哪个 frontViewController 调用了 RearViewcontroller
【发布时间】:2015-12-12 06:11:18
【问题描述】:

我正在使用SWRevealViewController。我的frontViewController 显示应用程序的各种不同内容,rearViewController 显示一个表格,其中包含指向这些选项的链接。因此,如果我的 frontViewController 当前正在显示主页,我希望 rearViewController 菜单表突出显示该行,以此类推其他每个选项。为此,菜单或rearViewController 需要知道frontViewController 正在显示哪个视图。我尝试在frontViewController 显示的每个ViewControllers 上设置restorationIdentifier,然后在menuViewcontroller 中访问它们,但每次它们返回nil

所以我在menuViewControllers viewDidLoad 方法中做了这样的事情

self.revealViewController.frontViewController.restorationIdentifier

我还在 VC 视图上设置了 restoreIdentifiers 并尝试了这个:

self.revealViewController.frontViewController.view.restorationIdentifier

但这也返回了 null

【问题讨论】:

    标签: ios uiviewcontroller swrevealviewcontroller


    【解决方案1】:

    我认为当您在viewDidLoad 中时,显示控制器还没有连接到后视图,甚至可能还没有连接到前 VC。所以你从self.revealViewController得到零是我的猜测。

    改用viewWillAppear 试试这个。

    【讨论】:

    • 是的,我也试过了。我应该在问题中说明。结果相同
    • 那么返回 nil 是什么? self.revealViewController? self.revealViewController.frontViewController?还是只是 restoreId?
    • restoreId。我已经根据表格的选定单元格实现了一个解决方法,我可以弄清楚用户按下的最后一个选项是什么,因此在(大多数)情况下,它是当前位于 frontViewController 中的内容。我还尝试在 frontviewController 呈现的视图上设置标签,但即使我在情节提要中为它们设置了不同的值,这些标签也总是评估为 0。
    • 我会仔细检查 self.revealViewController.frontViewController 的类,它可能不是你所期望的。例如,它可能是您应用的 UINavigationController 或选项卡控制器。在这种情况下,您必须深入挖掘才能找到您想要的 VC。
    猜你喜欢
    • 2013-10-14
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 2011-10-15
    • 2021-05-19
    • 2016-08-30
    • 2011-03-21
    相关资源
    最近更新 更多