iOS添加另一个控制器的时候要注意啊

时间:2021-12-28 06:02:24

ios的父控制器控制器和子控制器之间的注意点:

" >> #warning 需要把新创建出来的控制器添加成子控制器 . 不然子控制器里面的子控件无法响应点击事件 "

一个控制器(UIViewController)里面在点击导航栏右上角按钮的时候要以动画形式切换另一个控制器(LCMapViewController)  

当时代码只是把新创建出来的控制器View添加到了(UIViewController)控制器上 并没有让创建的新控制器(LCMapViewController) 添加成子控制器

导致在 控制器(LCMapViewController)里面的创建的子控件(按钮(UIButton))无法实现点击事件  

那么问题就来了: 在这个控制器(LCMapViewController)里面的子控件(按钮(也尝试着在UILabel上添加手势也无济于事))....代码如下:

// ------------------ ------------------ ------------------ ------------------ ------------------

UITableView *nearTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, LCScreenW, LCScreenH - 64 )];

nearTableView.delegate   = self;

nearTableView.dataSource = self;

nearTableView.separatorStyle = UITableViewCellSeparatorStyleNone;

self.nearTableView = nearTableView;

// [self.view addSubview:nearTableView];

 // 在UIViewController控制器上插入一个nearTableView

[self.view insertSubview:nearTableView atIndex:1];

LCMapViewController *mapViewController = [[LCMapViewController alloc] init];

 // 在UIViewController控制器上插入另一个(LCMapViewController)控制器的View

[self.view insertSubview:mapViewController.view atIndex:0];

// ------------------ ------------------ ------------------ ------------------ ------------------

后来解决这个问题就一句代码搞定了 >> 需要成为它的子控件才能响应事件  :

- (void)setupTableView

{

UITableView *nearTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, LCScreenW, LCScreenH - 64 )];

nearTableView.tag = 110;

nearTableView.delegate   = self;

nearTableView.dataSource = self;

nearTableView.separatorStyle = UITableViewCellSeparatorStyleNone;

self.nearTableView = nearTableView;

 // 在UIViewController控制器上插入一个nearTableView

[self.view insertSubview:nearTableView atIndex:1];

LCMapViewController *mapViewController = [[LCMapViewController alloc] init];

#warning 需要把新创建出来的控制器添加成子控制器 . 不然控制器里面的子控制器无法响应点击事件

    [self addChildViewController:mapViewController];

 // 在UIViewController控制器上插入另一个(LCMapViewController)控制器的View

[self.view insertSubview:mapViewController.view atIndex:0];

}

【微分享】:每一个人都在合适的位置,向同一个方向发挥自己的力量,展现出的美会震惊所有人!这--就是团队