1

这可能真的很简单,在那种情况下对不起。

我正在向我的应用程序添加一个 SplitViewController。一切正常,除了在 detailView 中加载的视图;它确实加载(控件等),但数据保持“空白”,就像它没有从数据库中获取数据一样。

但它是,视图本身负责它,当我不将它插入 detailViewController 时它可以工作!

看看这个 :

//this is my data and my ViewController
Medication* med = self.medications[indexPath.row]; 
MedicationViewController* viewController = [[MedicationViewController alloc] initWithMedication:med isNew:NO];

//1. this *doesn't work*, the detail panel get replaced, but the data from "med" never appears
self.detailViewController = viewController;

//2. but if I do this, everything works fine.
[self presentViewController:viewController animated:YES completion:nil];

我的猜测是,我的替换 (1.) 做错了。任何意见 ?我是否缺少“刷新”、“重新加载”功能?

4

1 回答 1

1

最后,我通过这样做使它工作:

UINavigationController* detailNavController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
self.splitViewController.viewControllers = @[self.splitViewController.viewControllers[0], detailNavController];

不是只更改一个控制器,而是更改整个数组,但保持对主控制器的相同引用。效果很好 !

于 2013-07-26T15:06:05.170 回答