我正在开发一个在文件夹和文件之间使用 CoreData 一对多关系的项目。为了显示这一点,我使用 UISplitViewController,文件夹显示在 MasterView 上,单击每个文件夹时,文件显示在 DetailView 上。文件夹和文件都是动态添加的。
我以这种方式以编程方式创建了 UISPlitViewController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
FolderViewController = [[FolderViewController alloc] initWithNibName:@"FolderViewController_iPad" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:FolderViewController];
FolderViewController.managedObjectContext = self.managedObjectContext;
fileViewController = [[fileViewController alloc] initWithNibName:@"fileViewController_iPad" bundle:nil];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController: fileViewController];
FolderViewController.fileViewController = fileViewController;
self.splitViewController = [[UISplitViewController alloc]init];
self.splitViewController.delegate = fileViewController;
self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController];
self.window.rootViewController = self.splitViewController;
}
这将我的 ipad 一分为二。左边是 FolderViewController,右边是 FileViewController。
我的主视图从不隐藏,在任何方向。
我在 Master 和 DetailView 上都有一个按钮,它以这种方式通过 splitViewController 模态打开常见的 EditViewController
- (void)Buttonclick
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
testViewController = [[EditViewController alloc] initWithNibName:@"EditViewController" bundle:nil];
m_editViewController.modalPresentationStyle = UIModalPresentationFormSheet;
[appDelegate.splitViewController presentModalViewController:m_editViewController animated:YES];
}
当我关闭此视图时,我会相应地添加文件夹或文件。
我以这种方式驳回这种观点
[self dismissModalViewControllerAnimated:YES];
我在这里几乎没有疑问
1)当我启动应用程序时,来自两个视图控制器的所有 imp(main) 函数都会被调用。可以吗?
2)当我从 DetailView 打开此 ModalView 时,会调用 NSFetchResultsController 的委托函数,这些函数位于 MasterView 中。那样行吗?
3)当这些函数被调用时,我的逻辑在某些情况下会失败。
问候兰吉特