gpt4 book ai didi

ios - 呈现自定义 alertView/ViewController

转载 作者:行者123 更新时间:2023-11-28 06:52:23 25 4
gpt4 key购买 nike

我需要呈现(使用自定义动画)一个 viewcontroller/“alertView”,类似于我收到推送通知(voip 调用)时所附的图片。我们目前提供了一个运行良好的标准 alertView,因此这将是一个更新。

我想在 Storyboard中创建 IncomingCallAlertVC,然后用我从推送通知收到的信息(名称、选项、铃声等)填充它我在做这件事时遇到了一些困难,想知道是否有人可以帮助我。

这就是我试图呈现它的方式:

let incomingCallAlertVC = IncomingCallAlertVC()
incomingCallAlertVC.displayMessage("MACKLEMORE")

这是 View Controller :

class IncomingCallAlertVC: UIViewController {


@IBOutlet weak var mylabel: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.clearColor()
self.modalPresentationStyle = UIModalPresentationStyle.OverFullScreen


}

func displayMessage(name:String) {
self.mylabel.text = name

let delegate:UIApplicationDelegate = UIApplication.sharedApplication().delegate!
let window:UIWindow! = delegate.window!
window.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
window.rootViewController!.presentViewController(self, animated: false, completion: nil)

UIView.animateWithDuration(0.3, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: { () -> Void in
self.view.alpha = 1
}) { (Bool) -> Void in
}
}

但我总是得到:

fatal error: unexpectedly found nil while unwrapping an Optional value

self.mylabel.text = name

如何在不使用 segues 的情况下呈现 ViewController 并传递数据?

enter image description here

最佳答案

UIViewController 的指定初始化程序是 init(nibName:bundle:)。当您创建 View Controller 实例时,您只是在创建该类的一个空白的哑实例。使用指定的初始值设定项:IncomingCallAlertVC(nibName:"whatever", bundle:nil)

您将遇到的另一个问题是您的 myLabel socket 将不会连接(将为 nil),直到加载 View (这只会发生在第一次访问 Controller 的 view 属性或手动调用 loadView

更新

根据您对@FelixSFD 的评论,您仍应使用UIStoryboard.instantiateViewControllerWithIdentifier() 来制作 View Controller 。您不必使用 segue,但如果您从 Storyboard 创建程序集,这是正确的方法。

关于ios - 呈现自定义 alertView/ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535186/

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