我创建了一个非常简单的故事板,它使用Popover演示文稿来显示另一个视图.在模拟器上,如果我运行这个iPad,它的工作原理.但是,如果我运行它为一个iPhone,而不是一个popover,它显示一个全屏视图,在原始视图之上.这可以;然而,没有办法解除它并返回原始屏幕.
我看过WWDC 2014视频“228 A Look insIDe演示控制器”,如果他们完全用代码构建用户界面,他们可以显示一个关闭按钮.
我也看过“411接口构建器新功能”会话,他们说这可以在Interface Builder中完成,但是它们没有显示出来,如果有人感兴趣的话,我们承诺说明如何在实验室中做到这一点.不幸的是,我没有参加WWDC 2014,或者知道有谁.我的Google搜索没有返回任何有用的.
解决方法 您可以添加导航控制器,如>将您的popover视图控制器作为根视图控制器设置为导航控制器.
>删除您当前使用的popover segue
>从显示d出窗口的按钮重新连接到导航控制器.
在iPad上,你会得到一个popover,在iPhone上你会得到一个模态的演示文稿. iPad和iPhone都会显示导航控制器.根据您的用例,这可能是您也可能不是您想要的.这是一个关于故事板应该是什么样子的屏幕显示.
>
如果你真的希望你的视图控制器永远是一个popover离开你的故事板的方式,并添加一些这样的视图控制器,呈现popover-
-(voID)prepareForSegue:(UIStoryboardSegue *)segue sender:(ID)sender{if ([segue.IDentifIEr isEqualToString:@"Your segue name"]) { UIVIEwController *yourVIEwController = segue.destinationVIEwController; yourVIEwController.modalPresentationStyle = UIModalPresentationPopover; UIPopoverPresentationController *popoverPresentationController = yourVIEwController.popoverPresentationController; popoverPresentationController.delegate = self; }}
呈现popover的视图控制器也需要响应此UIPopoverPresentationDelegate方法
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {return UIModalPresentationNone;//always popover.}
最后,您可以执行以下 *** 作,只需将导航控制器添加到iPhone上的视图控制器的模态演示文稿,并将其移动到iPad上,而无需导航控制器.
离开你的故事板.
>注入导航控制器的正确位置是 – (UIVIEwController *)presentationController:(UIPresentationController *)controller vIEwControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)样式.为了这个被调用,我们必须将自己设置为UIPopoverPresentationController的代表.
再次我们会在prepareForSegue中做到这一点:
-(voID)prepareForSegue:(UIStoryboardSegue *)segue sender:(ID)sender{if ([segue.IDentifIEr isEqualToString:@"Your segue name"]) { UIVIEwController *yourVIEwController = segue.destinationVIEwController; yourVIEwController.modalPresentationStyle = UIModalPresentationPopover; UIPopoverPresentationController *popoverPresentationController = yourVIEwController.popoverPresentationController; popoverPresentationController.delegate = self; }}
那么我们将在上面提到的委托方法中这样做
-(UIVIEwController *)presentationController:(UIPresentationController *)controller vIEwControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)style{ UIVIEwController *presentedVIEwController = controller.presentedVIEwController; UINavigationController *navigationController = [[UINavigationController alloc] initWithRootVIEwController:presentedVIEwController]; UIbarbuttonItem *dismissbutton = [[UIbarbuttonItem alloc] initWithbarbuttonSystemItem:UIbarbuttonItemStyleDone target:self action:@selector(done:)]; presentedVIEwController.navigationItem.rightbarbuttonItem = dismissbutton; return navigationController;}
祝你好运!
总结以上是内存溢出为你收集整理的ios8 – 如何在自适应故事板中关闭iPhoned出窗口全部内容,希望文章能够帮你解决ios8 – 如何在自适应故事板中关闭iPhoned出窗口所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)