addChildViewController 与 addSubview

在viewcontrollerA中, 如果想把controllerB.view添加进来, 

可以用 addSubview, 但如果controllerB中有个事件, 使用到 self.navigationController 来做操作是不行的.

因为 self.navigationController 为空.

 

这时需要在controllerA中生成controllerB时,添加加一句

  [self addChildViewController:controllerB];

 

        _userSRCtl = [[LatterJoinViewController alloc] init];
        _userSRCtl.latterJoinType = LatterJoinTypeSearch;
        _userSRCtl.searchKeyStr = _mySearchBar.text;
        _userSRCtl.viewHeight = SCREEN_HEIGHT - kStatusbarHeight - kNavbarHeight - 44;
        [self addChildViewController:_userSRCtl];
        [self.view addSubview:_userSRCtl.view]; 

  

 

/*
  If the child controller has a different parent controller, it will first be removed from its current parent
  by calling removeFromParentViewController. If this method is overridden then the super implementation must
  be called.
Adds the specified view controller as a child of the current view controller. The view controller to be added as a child. */ - (void)addChildViewController:(UIViewController *)childController NS_AVAILABLE_IOS(5_0);

  

原文地址:https://www.cnblogs.com/willbin/p/4956063.html