想澄清一下是视图加载错误还是代码问题?

Posted

技术标签:

【中文标题】想澄清一下是视图加载错误还是代码问题?【英文标题】:Would like to clarify if it is the view did load error or is it the code problem? 【发布时间】:2019-06-17 23:01:55 【问题描述】:

很乐意协助澄清细节。我尝试通过 segue 输入应用内购买视图控制器并通过用户默认值将其关闭,但控制器不存在并且崩溃表明视图确实加载错误。因此,

override func viewDidLoad() 
    super.viewDidLoad()

    SKPaymentQueue.default().add(self)
    if isPurchased() 
        showDetails()
    


override func prepare (for segue: UIStoryboardSegue, sender: Any?) 

     if segue.identifier == "subscribepage1" 
           buyPremium()
      else if segue.identifier == "subscribepage2" 
            buyPremium()
     


func isPurchased() -> Bool 
    let purchaseStatus = UserDefaults.standard.bool(forKey: productID)
    if purchaseStatus 
        print("Previously purchased")
        return true
     else  print("Never purchased")
        return false
    


func showDetails() 
    UserDefaults.standard.set(true, forKey: productID)
    performSegue(withIdentifier: "gotop1", sender: self)
    performSegue(withIdentifier: "gotop2", sender: self)

【问题讨论】:

很难判断是复制粘贴代码出错,还是代码有误。我认为这会帮助你更一致地适当缩进你的代码。在我看来,您在第一个函数之后缺少一个右括号。给自己找一个好的 IDE,它会让你的生活变得更轻松。 【参考方案1】:

只有你的代码有问题,当你调用 showDetails() 方法同时执行两个 segues 时

performSegue(withIdentifier: "gotop1", sender: self)
performSegue(withIdentifier: "gotop2", sender: self)

验证/添加这两行的条件,“gotop1”或“gotop2”。

【讨论】:

您好 Komara,感谢您的建议。我尝试将它们分开,但仍然无法连接或使视图控制器按我希望的方式运行。您建议对这些行进行什么验证或添加什么? 我想先知道一件事,你还遇到同样的错误吗?如果不让我知道你希望如何工作。 我希望使用 segue(在应用程序中购买)显示视图控制器,然后关闭该视图(同时添加用户默认值)。问题似乎是在我点击按钮(signet 1 错误)后视图不会加载。感谢您的帮助 Komara :) 感激不尽

以上是关于想澄清一下是视图加载错误还是代码问题?的主要内容,如果未能解决你的问题,请参考以下文章

理解/澄清视图控制器语法

VS2010 WPF 加载不了设计视图的问题,代码是正常的,但是视图加载不出来

我需要澄清一下我是不是应该(可以?)取消分配与视图相关的 UI 元素

关于视图层次结构,需要澄清

为啥 C 代码不返回结构?

为啥在后端使用模块加载?