objective-c – 如何访问父视图?
我正在尝试从代码访问故事板以便能够使用此行:
DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"]; 我在mapview和listview中使用它,但想在其他地方使用它. 它的设置如下: thisBigView是我在故事板中添加的视图,它是ThisBigViewController ThisSmallView是一个自定义视图,我在视图中动态生成按钮.这些按钮调用以下操作: -(void) radarEventClick:(UIButton *)sender{ SingletonManager *sharedManager = [SingletonManager sharedManager]; DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"]; // PROBLEM 1 Event *a; for(int i = 0; i < [sharedManager.eventsManager count]; i++){ if(sender.tag == ((Event*)([sharedManager.eventsManager objectAtIndex:i])).id_nr){ a = [sharedManager.eventsManager objectAtIndex:i]; break; } } [detail setEvent:a]; [self.navigationController pushViewController:detail animated:YES]; // PROBLEM 2 } 这是我在mapviewcontroller中使用的代码,用于响应annotationdisclosure点击,并希望在此处使用它,但我有2个问题! 问题1:因为thisSmallView是另一个视图的子视图,所以它无法直接访问故事板,也不知道如何获取该访问权限. 问题2:thisBigView嵌入了一个导航控制器,但同样,我不知道是谁访问thisBigView,所以我无法访问navigationcontroller. (我想如果我能解决问题2,我会自动解决问题1到?) – 编辑:我试过的 – DetailViewController *detail = [self.superview.storyboard instantiateViewControllerWithIdentifier:@"detail"]; 但后来我只是在’UIView *’类型的对象上找不到’属性故事板’ 解决方法
将子视图添加为界面构建器中超级视图的属性(控制 – 拖动到头文件).然后将UIViewController属性添加到子视图.在superview的代码中然后做
nameOfSubView.superViewPropertyName = self; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |