gpt4 book ai didi

ios - 以表单大小显示弹出 View

转载 作者:行者123 更新时间:2023-11-28 06:31:42 24 4
gpt4 key购买 nike

我目前正在尝试在触摸按钮时在屏幕上显示我在 xib 中创建的 View 。我希望它以表单样式显示在屏幕中间。然而,在这一点上,我只是在担心展示位置之前一直试图让它显示出来。

这是我在 xib 中创建的 View enter image description here

我已经为其分配并创建了“CallNowView”类,目前看起来就像这样。

import Foundation
import UIKit

class CallNowView: UIViewController{

@IBOutlet var btnCancel: UIButton!
@IBOutlet var btnCall: UIButton!

@IBAction func btnCall_pressed(_ sender: AnyObject) {
}

@IBAction func btnCancel_pressed(_ sender: AnyObject) {
}

}

我在希望 xib 显示的 View 中尝试做的如下

@IBAction func btnRSRCall_pressed(_ sender: AnyObject) {
if (callNowView == nil)
{
callNowView = CallNowView(nibName: "CallNow", bundle: nil)
}

if(UIViewController.responds(to: #selector(getter: popoverPresentationController))){
callNowView.modalPresentationStyle = .formSheet
callNowView.popoverPresentationController?.sourceView = btnCall;
callNowView.popoverPresentationController?.sourceRect = btnCall.bounds;
callNowView.popoverPresentationController?.permittedArrowDirections = .any
}

else {
//no support ios7 device, either ipad or iphone
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.phone)
{
//present standard controller for ios7, iphone,
self.present(callNowView, animated: true, completion: nil)
}
else
{
//present s popupcontroller for ios7, ipad
let popover = UIPopoverController.init(contentViewController: callNowView)
popover.present(from: btnCall.bounds, in: btnCall, permittedArrowDirections: .any, animated: true)
}
}
}

当我运行代码时,它在 self.present(callNowView, animated: true, completion: nil) 这一行崩溃,并出现错误提示 terminating with uncaught exception of type NSException

我希望有人能帮我解决这个问题

最佳答案

在你的 xib 中,你应该将 Class of File's Owner 设置为 CallNowView,因为 CallNowView 是 UIViewController 的子类。然后将 Filer 的所有者 View 拖到 IB View 。它应该看起来像下面的截图: enter image description here

关于ios - 以表单大小显示弹出 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40140377/

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