【发布时间】:2011-06-16 15:12:19
【问题描述】:
我有一个 RootViewController 有 2 个 tableViews 作为子视图(在 IB 中创建)每个都有自己的 tableViewController 类(处理 fetchRequests 等)
1 tableView 是静态的(用户或模型视图没有更改数据)。
tableView 2 在标题中有一个按钮,它显示了一个 imagePickerController。 到目前为止没有问题。
问题是,当我关闭 imagePicker 时
[self dismissModalViewControllerAnimated:YES];
TableView 2 变成全屏我试过了
[[self rootViewController] dismissModalViewControllerAnimated:YES]
什么都没有发生。它粘在图像选择器上。
我怀疑这是因为以编程方式创建的视图很少。
有什么想法吗?
提前致谢。
去酒化
-(IBAction)addImageTableAPressed {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}
RootViewController
|| ||
|| ||
\/ \/ addImageTableAPressed
TableViewControlA TableViewControlB --------------------->modelViewController
解决 managedObjectContect .....
- (void)viewDidLoad {...
if(managedObjectContext == nil)
{
managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSLog(@"After managedObjectContext: %@", managedObjectContext);
}
...
}
【问题讨论】:
-
如何呈现imagePickerController?你能发布一些代码吗?
-
谢谢。哪个视图控制器实现了
addImageTableAPressed方法?如果presentModalViewController:animated:的目标不是您的RootViewController,那么这可能会解释您的问题。另外,我建议不要使用不同的视图控制器管理根视图的部分或子视图... -
@octy 欢呼,addImageTableAPressed 由 TableViewControllerB 实现(见上文)。我试图避免它,但唯一的方法是我可以在一个视图中获得 2 个 tableViews 并且能够为两者提供数据(获取请求)。我无法在单个类中创建超过 1 个提取请求。此外,将 rootViewCon 作为 ViewController,我可以拥有一个必不可少的 imageView。我知道父 viewCont 将是 tViewControllerB 并且当 imagePicker 被辞职时它被弹回到堆栈的顶部。我需要以某种方式使 rootView 成为父级,但保持设计不变..
-
好的,在这种情况下,我会说最好定义一个包含 2 个子视图(TableViewA 和 TableViewB)的 UIView(rootView)。您的 RootViewController 的视图将是 rootView,并且此控制器必须是两个表视图的数据源和委托。我会写一个详细说明这种方法的答案,但首先,你为什么说你“不能在一个类中实现超过 1 个获取请求”?
-
我的意思是,你有什么特别的限制来限制自己为每个类实现 1 个获取请求吗?
标签: iphone uitableview core-data uiviewcontroller