Iphone 在UISplitViewController上显示模式视图的最佳实践
基于SplitViewController模板创建一个新应用程序,它在Split View中运行良好 我的主屏幕是一个非拆分视图“菜单”。我正试图找出最佳的治疗方法 在splitViewController上方以模式添加此“主菜单”。(然后将其他非拆分视图推到主菜单上方或 卸下它以显示并使用UISplitViewController。) 我试过:Iphone 在UISplitViewController上显示模式视图的最佳实践,iphone,ipad,uisplitviewcontroller,Iphone,Ipad,Uisplitviewcontroller,基于SplitViewController模板创建一个新应用程序,它在Split View中运行良好 我的主屏幕是一个非拆分视图“菜单”。我正试图找出最佳的治疗方法 在splitViewController上方以模式添加此“主菜单”。(然后将其他非拆分视图推到主菜单上方或 卸下它以显示并使用UISplitViewController。) 我试过: [self.navigationController presentModalViewController:mainMenu animated:NO]
[self.navigationController presentModalViewController:mainMenu animated:NO];
及
在ViewWillDisplay和viewWillLoad中,rootViewController和detailViewController的方法。在这两种情况下,代码都会正确执行,但主菜单不会出现,常规的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];
我已经看到很多人回应说要以模式呈现这样一个覆盖视图,但我似乎无法在splitViewController设置中找到正确的位置或配置。谢谢你的帮助和见解
最后,这种方法错了吗?我应该换掉detailViewController,让它在纵向模式下全屏显示,而不是为根控制器添加菜单项吗?您的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];
}
//AppDelegate.m
-(BOOL)应用程序:(UIApplication*)应用程序
didFinishLaunchingWithOptions:(NSDictionary*)启动选项
{
MyController*myCont=[[MyController alloc]initmain菜单];
//乱搞myCont.view.modalPresentationStyle;
[myCont setModalDelegate:self];
//创建委托()以在完成时关闭视图
[self.splitViewController presentModalViewController:myCont动画:否];
[霉素释放];
}
//为了完成任务
-(void)modalViewDismiss:(MyController*)modalView{
[self.splitViewController dismissModalViewController:是];
}
我做到了(正如我在描述中指出的那样)。我确信我遗漏了一些东西。。。它在加载后也可以工作。i、 e.如果我添加了一个方法调用,在ViewWill出现0.01秒后执行,那么它可以工作(但您确实看到了转换)。在使用故事板的应用程序中,当从AppDelegate调用presentModalViewController时,它似乎无法工作。
//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];
}