【问题标题】:"- (void)splitViewController willHideViewController withBarButtonItem forPopoverController" not called“- (void)splitViewController willHideViewController with BarButtonItem forPopoverController” 未调用
【发布时间】:2012-11-12 23:34:02
【问题描述】:

我有一个具有以下架构的应用程序:

登录 -> 标签栏 ->

  1. UINavigationController -> Tab1ViewController
  2. UISplitViewController -> UINavigationController -> MasterViewController/DetailViewController
  3. UINavigationController -> Tab3ViewController

然后我在我的 DetailViewController 中实现

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController

但它永远不会被调用。

我还把 splitview 委托放在了我的详细信息中:

@interface DetailViewController : UITableViewController
<UISplitViewControllerDelegate>

我有什么遗漏吗?

【问题讨论】:

    标签: uitabbarcontroller storyboard uisplitviewcontroller


    【解决方案1】:

    你错过了很多东西。

    一、为了快速解决你的问题,写:

    splitViewController.delegate = self;
    

    第二,请注意,您是否遵守&lt;UISplitViewControllerDelegate&gt; 协议并不重要。这只是给编译器的一个提示——它不会让视图控制器神奇地知道哪个对象应该是它的委托......

    三,作为旁注:这与 Xcode 完全无关。

    【讨论】:

    • @H2CO3 我在这个问题上花了(太)很多小时,但我根本看不到您的解决方案如何解决 willHideViewController: 未被调用的问题。你建议我们在哪里写“splitViewController.delegate = self;”?
    • 终于在stackoverflow.com/questions/5855639/…找到了答案:你得把splitViewController.delegate = self;在 DetailViewController 的 awakeFromNib 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2012-01-31
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多