gpt4 book ai didi

xcode - UIPopoverPresentationController

转载 作者:搜寻专家 更新时间:2023-10-31 22:15:45 25 4
gpt4 key购买 nike

我是 swift 的新手,正在尝试了解如何使用 UIPopoverPresentationController

我在我的应用程序中需要的是,当按下按钮时,屏幕按钮的弹出窗口将在屏幕的一半上显示一个 xib 文件。现在发生的事情是,我设法转到第二个 View Controller ,但不知道如何加载 xib 文件以及如何使弹出窗口成为按钮屏幕的一半。这是我的代码

import UIKit

class BaseViewController: UIViewController , UIPopoverPresentationControllerDelegate {

@IBAction func moveToPopoverView(sender: UIButton) {
var popoverViewController = self.storyboard?.instantiateViewControllerWithIdentifier("Popover") as! UIViewController
popoverViewController.modalPresentationStyle = .Popover
popoverViewController.preferredContentSize = CGSizeMake(200, 200)

let popoverPresentationViewController = popoverViewController.popoverPresentationController

popoverPresentationViewController?.permittedArrowDirections = .Any
popoverPresentationViewController?.delegate = self

presentViewController(popoverViewController, animated: true, completion: nil)
}

override func viewDidLoad() {
super.viewDidLoad()
}
}

最佳答案

完成此操作的最简单方法是通过 Storyboard弹出式演示文稿转场。它将为您处理呈现的 View Controller 实例化。

  1. 向将显示弹出窗口的按钮添加弹出窗口显示转场。给 segue 一个标识符。这将处理将弹出窗口锚定到按钮:

Popover presentation segue from (titleView) button

  1. 为呈现的 View Controller 设置 Storyboard呈现细节。我为 tableView Controller (嵌入在导航 Controller 中)选择了 Page Sheet 演示文稿。

(Page sheet) presented view controller

  1. 添加 prepareForSegue:sender: 代码以将任何参数传递给您呈现的 View Controller 。 (我还没有学过 Swift...对不起 Objective C。)
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)__unused sender {        if ([[segue identifier] isEqualToString:@"showBIBLESelectBookChapter"]) {            UINavigationController *navigationController = segue.destinationViewController;            if ([navigationController.topViewController isKindOfClass:[BIBLESelectViewController class]]) {                BIBLESelectViewController *selectViewController = (BIBLESelectViewController *)navigationController.topViewController;                selectViewController.initialBookChapterVerse = self.bookChapterVerse;            }            UIPopoverPresentationController *popoverPresentationController = navigationController.popoverPresentationController;            popoverPresentationController.delegate = self;        }    }

segue 将为您完成所有实际工作,实例化、呈现和锚定弹出 View Controller 。

Presented popover view controller

您应该能够设置您的内容大小,以便您的弹出窗口是半屏。

关于xcode - UIPopoverPresentationController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com