【发布时间】:2012-07-21 16:03:17
【问题描述】:
我正在尝试从代码中访问情节提要以便能够使用这一行:
DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
我在我的地图视图和列表视图中使用它,但想在其他地方使用它。 问题是这个视图是另一个视图的子视图。
设置如下:
thisBigView 是我在故事板中添加的视图,它是 ThisBigViewController
在情节提要中,我向该视图添加了另一个视图,我们称之为 thisSmallView。类设置为ThisSmallView。
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 是 anotherview 的子视图,所以它无法直接访问情节提要,也不知道如何获得该访问权限。
问题 2:thisBigView 嵌入在 navigationcontroller 中,但同样,我不知道谁可以访问 thisBigView,所以我无法访问 navigationcontroller。
(我想如果我能解决问题2,我会自动解决问题1?)
-- 编辑:我尝试过的--
DetailViewController *detail = [self.superview.storyboard instantiateViewControllerWithIdentifier:@"detail"];
但是我只是得到'在 UIView* 类型的对象上找不到属性故事板'
【问题讨论】:
标签: objective-c xcode uiview uiviewcontroller storyboard