如何从AppDelegate呈现视图?

时间:2017-12-26 14:42:24

标签: ios swift xcode uistoryboard appdelegate

我的3dTouch快捷项目被激活时,我目前在呈现视图时遇到了一些困难。

当用户使用快捷项目'添加注释时,我试图呈现视图。

激活'添加注释'快捷方式项目我的应用程序崩溃并给我错误:Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

以下是代码:( App Delegate)

var cVC = ContainerVCViewController()

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
    if shortcutItem.type == "DarthDevelopments.noteapp.addNote" {
        //Prefrom Action Go To Add Note View
        cVC.anim1in()
    }

    if shortcutItem.type == "$(PRODUCT_BUNDLE_IDENTIFIER).createList" {
        //Prefrom Action Go To Create List View Controller

    }
}

这是代码:(ContainerVCViewController)

@IBOutlet weak var containerView: UIView!
@IBOutlet weak var notesLabel: UILabel!
@IBOutlet var addNoteView: UIView!
@IBOutlet weak var addNoteText: UITextField!
@IBOutlet weak var blurView: UIVisualEffectView!

func anim1in() {
    blurView.isHidden = false

    view.addSubview(addNoteView)
    addNoteView.center = self.view.center
    addNoteView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
    addNoteView.alpha = 0
    UIView.animate(withDuration: 0.4) {
    self.addNoteView.alpha = 1
    self.addNoteView.transform = CGAffineTransform.identity
    }
}

调试时我可以看到,在调用cVC.anim1in()时,所有IBOutlet都等于nil。

以下是我从控制台收到的内容:

Console Log Here

注意:

我已经讨论了很长一段时间了,我得出了这些结论:

  • 我需要能够初始化所有IBOutlets
  • 找到一种新方法来展示“添加注释视图”

如果有人能够提出这些想法或其他解决方案的解决方案,那就太棒了!

我有点像新开发者。对不起,如果我犯了一个愚蠢的错误。

非常感谢任何帮助。

感谢您的时间,

DarthShmev。

重要:

由于 Agility Vision ,我已经提出了一些解决方案。

以下是帖子:StackOverFlow Topic

他基本上说的是我需要:

  • 使用透明的 UIViewController 创建 UIWindow ,然后在其上显示视图。

我不确定如何在我的情况下应用此功能。

0 个答案:

没有答案