对于我的 iPad 版本的应用程序,我想通过单击按钮将 UIViewController
作为 UIPopoverController
打开。因此,打开 View Controller 的真正代码如下。我如何轻松地将此类代码转换为打开 UIViewController
作为 UIPopoverController
?
代码:
UIStoryboard *sb = [UIStoryboard storyboardWithName:[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"] bundle:[NSBundle mainBundle]];
UIViewController *aboutView = [sb instantiateViewControllerWithIdentifier:@"AboutViewController"];
aboutView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:aboutView animated:YES completion:NULL];
最佳答案
使用类似的东西:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIPopoverController *poc = [[UIPopoverController alloc] initWithContentViewController:aboutView];
[poc presentPopoverFromRect:CGRectMake(somePoint.x, somePointY, 1.0, 1.0) inView:self.view permittedArrowDirections: UIPopoverArrowDirectionAny animated:YES];
} else {
aboutView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:aboutView animated:YES completion:NULL];
}
您还可以通过按钮显示弹出框,还可以控制弹出框的显示方向。如果您使用 UIPopoverArrowDirectionAny
,iOS 会做出明智的决定,让弹出窗口可见。
您还应该保持对弹出框的强引用,并且仅在它为 nil
时显示它,以确保弹出框仅出现一次。这意味着如果弹出窗口被取消,则将保存它的属性设置为 nil
。
关于ios - Storyboard - 打开 UIViewController 作为 UIPopoverController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23849020/