基于 SplitViewController 模板创建一个新应用,它在分割 View 中运行良好。
我的主屏幕是一个非分割 View “菜单”。我正在尝试找出最佳实践 在 splitViewController 上方以模态方式添加此“mainMenu”。 (然后将其他非分割 View 推到主菜单上方或 删除它以显示并使用 UISplitViewController。)
我已经尝试过:
[self.navigationController presentModalViewController:mainMenu animated:NO];
还有
[self presentModalViewController:mainMenu animated:NO];
在rootViewController和detailViewController的viewWillAppear和viewWillLoad方法中。在这两种情况下,代码执行时都不会出错,但 mainMenu 不会出现,而是会出现常规的DetailViewController 和 rootViewController。
(我确实在 main.xib 文件中的 navigationController 到DetailView navigationController 之间创建了一个导出,但这并没有改变任何东西。)
我能够通过使用来完成这项工作,它有效,但似乎是不正确的。
iPad_Prototype_SplitAppDelegate *delegate = (iPad_Prototype_SplitAppDelegate *) [ [UIApplication sharedApplication] delegate];
[delegate.splitViewController.view addSubview:mainMenu.view];
[delegate.splitViewController.view bringSubviewToFront:mainMenu.view];
我看到很多回复说要以模态方式呈现这样的覆盖 View ,但我似乎无法在 splitViewController 设置中找到正确的位置或配置。感谢您的任何帮助或见解。
最后,这种方法是错误的吗?我应该换掉detailViewController并让它在纵向模式下全屏显示,而不是为根 Controller 添加菜单项吗?
最佳答案
AppDelegate 中的 splitViewController 与示例类似吗?这会有帮助吗?
//AppDelegate.m
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MyController *myCont = [[MyController alloc] initMainMenu];
// mess around with myCont.view.modalPresentationStyle;
[myCont setModalDelegate:self];
// Create a delegate (<ModalControllerDelegate>) to dismiss view when done
[self.splitViewController presentModalViewController:myCont animated:NO];
[myCont release];
}
// for completion sake
-(void)modalViewDismiss:(MyController *)modalView {
[self.splitViewController dismissModalViewController:YES];
}
关于iphone - 在 UISplitViewController 上方显示模态视图的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3311071/