ios8 – 如何在自适应故事板中关闭iPhoned出窗口

ios8 – 如何在自适应故事板中关闭iPhoned出窗口,第1张

概述我是iOS开发的新手,我正在尝试同时学习故事板, Swift和iOS 8的新功能. 我创建了一个非常简单的故事板,它使用Popover演示文稿来显示另一个视图.在模拟器上,如果我运行这个iPad,它的工作原理.但是,如果我运行它为一个iPhone,而不是一个popover,它显示一个全屏视图,在原始视图之上.这可以;然而,没有办法解除它并返回原始屏幕. 我看过WWDC 2014视频“228 A L 我是iOS开发的新手,我正在尝试同时学习故事板,Swift和iOS 8的新功能.

我创建了一个非常简单的故事板,它使用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出窗口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1110967.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存