我正在开发一个使用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分成两部分。 Leftside是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(主要)功能都被调用。是吗?
2)当我从DetailView打开时关闭这个ModalView时,会调用NSFetchResultsController的委托函数,这些函数在MasterView中。那可以吗?
3)当这些函数被调用时,我的逻辑在某些情况下会失败。
此致 兰吉特