ios - 初始化变量时遇到问题

标签 ios swift

我试图在 View Controller 接管 View 之前初始化 View Controller 中的变量,似乎无论我如何尝试初始化它,它都不起作用,并且软件运行时就好像该值是默认值。部分问题似乎是当我尝试设置变量的值时,包含相关变量的 View 为零。我不知道这是为什么。任何帮助,将不胜感激。谢谢!这是我的代码:

override func setStartPosition()
{
    if sessionNameIndex != nil
    {
        if let curSession = ShareData.sharedInstance.sessionDataObjectContainer[sessionNames[sessionNameIndex]]
        {
            initialValue = YesNo(rawValue: (curSession.currentValue))

            if mySessionDisplay == nil
            {
                mySessionDisplay = SessionDisplayView(frame: self.view.frame)
                if mySessionDisplay == nil
                {
                    var shouldneverbehere = 0  //Always goes here!
                }
                else
                {
                    mySessionDisplay.onView(index: 2, sessionName: sessionNames[sessionNameIndex])
                    mySessionDisplay.curScene.setStartPosition(newValue: val!)
                }

            }



        }
    }
}

此函数在以下代码中被调用:

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

    if let destination = segue.destination as? SessionDisplayViewControllerTwo
    {
        if let myNames = sender as? [String]
        {
            destination.sessionNames = myNames
            destination.sessionNameIndex = 1
            destination.setStartPosition()
        }
    }
}

如果您需要更多信息,请告诉我。再次感谢您对此事的考虑。

最佳答案

View Controller 的 View 尚未加载到 prepareForSegue 中。正如 @muescha 在他的评论中建议的那样,您应该在 prepareForSegue 中设置属性,然后等待 viewDidLoadviewWillAppear ,然后再尝试将它们安装在你的意见。我不确定为什么您尝试手动创建 SessionDisplayView 失败,但无论如何您都不应该尝试在 prepareForSegue 中创建 View ,因此解决方案是“不要这样做。”

关于ios - 初始化变量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948928/

相关文章:

ios - 如何以编程方式更改 iPhone X 的底部边缘颜色?

iphone - 您如何在 Master-Detail Storyboard模板中访问 tableView?

ios - 如何在 Alamofire 中将响应值保存到 NSDictionary 中?

ios - 背景图像未加载到按钮 ios 8 swift

iOS - 当全局计算发生时 UIViewControllers

ios - 沿 X 轴的核心图填充图?

iOS 自定义附件无法直接从消息中打开

ios - String is not convertible to Range<I> swift anyone 错误

IOS:使用延迟加载图像进行 JSON 解析

ios - 初始化中隐式解包的可选值 - Swift