【问题标题】:Access UITableViewController in Container View在容器视图中访问 UITableViewController
【发布时间】:2013-03-31 21:46:37
【问题描述】:

我在容器视图中嵌入了一个 UITableViewController。 UITableViewController 有一个我想在主视图控制器中访问的委托方法。

我可以将容器中的视图分配给主视图中的属性 - 但是我无法访问嵌入的视图控制器并将其设置为委托。

我该怎么做?如果需要,我可以发布代码...不确定我可以发布什么有用的东西!!!

【问题讨论】:

    标签: objective-c uitableview delegates ios6.1 container-view


    【解决方案1】:

    您应该在主容器视图中创建一个属性,并在创建时将 UITableViewController 分配给它。完成后,您只需访问此属性即可调用所需的委托方法。例如:

    @interface ContainerViewController : UIViewController
    
    @property (weak) UITableViewController *tableViewController;
    
    @end
    
    
    @implementation ContainerViewController
    
    - (void)createTableViewController {
    
      self.tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
    }
    
    - (void)callTableViewControllerDelegate {
    
       if(self.tableViewController)
         [self.tableViewController delegateMethod];  //etc
    }
    
    @end
    

    【讨论】:

    • 这应该在包含容器视图的uiviewcontroller中,还是容器视图的自定义对象中?容器视图属于 UIView 类型...
    • 是的,这应该在包含容器视图的 UIViewController 中。
    • 我已经为uitableviewcontroller声明了一个属性,我已经实现了委托方法,并且我在uiviewcontroller的viewdidload函数中设置了uitableviewcontroller。我似乎无法将声明的 tableviewcontroller 连接到容器视图中的嵌入对象......
    • 我声明为属性的uitableviewcontroller不为空,我设置的委托属性在我完成初始化后也不为空。如果我在应该调用委托方法的地方中断 - 对象的委托返回 null ...
    • 我已经检查了导航视图控制器,但我根本找不到嵌入式视图的视图控制器在哪里... :-S 完全糊涂了
    【解决方案2】:

    好的...我的问题是我试图通过容器视图本身访问 TableViewController。

    我应该做的——现在正在做的是寻找容器视图和 UITableViewController 之间的嵌入 segue。然后可以根据需要设置委托方法等!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 2016-02-13
      • 2017-04-05
      • 2014-02-10
      相关资源
      最近更新 更多