Bil*_*ill 11 storyboard ipad ios ios-universal-app
我正在从硬编码布局转移到Xcode 6中可用的新通用故事板系统.能够创建一个故事板,通过自动布局的魔力,可以在iPhone和iPhone上运行,这很棒. iPad.我的理解是,通用故事板与iOS 7向后兼容.
但是,我遇到了使用popover segues的问题.在iOS 8上,新的"Present as Popover"segue将在iPad界面上显示为弹出式窗口,并在iPhone界面上显示为模态视图控制器.这正是我想要的行为,但是当我在iOS 7上运行我的通用故事板时,每当我尝试使用popover segue时,应用程序都会崩溃.这是我收到的错误消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[UIPopoverController initWithContentViewController:] called when not
running under UIUserInterfaceIdiomPad.'
Run Code Online (Sandbox Code Playgroud)
这有点烦人,因为我不想为每个UI成语使用单独的故事板.
看起来这些是我的选择:
UIStoryboardSegue,它将在iPad上显示弹出窗口并在iPhone上显示模态视图.这需要手动更改我的应用程序中所有popover segues的类.这些都不是很好的选择,所以我想知道:我还有其他选择吗?我错过了我提出的解决方案的任何问题吗?
小智 -1
看起来你正在尝试以模态方式呈现你的视图,如果设备是 iPhone,如果设备是 iPad,则以 Popover 的形式呈现。要产生这种效果,最简单的方法是在事件发生时检查 InterfaceIdiom(如按钮单击),并有条件地使用适当的方法。
-(IBAction)btnClicked:(id)sender{
if([[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad){
//your popover code..
}else{
//your present modaly code...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
731 次 |
| 最近记录: |