【问题标题】:Passing Value in StoryBoard在 StoryBoard 中传递价值
【发布时间】:2016-10-13 07:32:38
【问题描述】:

我想在 storyboard 中通过 init 传递值。在 xib 中使用的这段代码运行良好。但是在情节提要中,我的应用程序崩溃了。这是我的代码 sn-ps 请帮助任何帮助将不胜感激。

在FirstviewController中

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
        viewControllerd = storyboard.instantiateViewControllerWithIdentifier("a") as? SecondViewController
        viewControllerd = SecondViewController.init(title: "helo")
        addViewControllerAsChildViewController(viewControllerd!)

第二视图控制器

        init(title : String)
        {
            a = title
            super.init(nibName: "SecondViewController", bundle: nil)
        }

        required init(coder aDecoder: NSCoder)
        {
        super.init(coder: aDecoder)!
        }

【问题讨论】:

  • 请显示崩溃日志。

标签: ios iphone swift uistoryboardsegue


【解决方案1】:
viewControllerd = SecondViewController.init(title: "helo")

替换代码
viewControllerd.title = "helo"

并且不需要以下代码:

init(title : String){

    a = title
     super.init(nibName: "SecondViewController", bundle: nil)

}

【讨论】:

  • 比在 SecondViewController 类中创建日期变量并传递如下:viewControllerd.date = Date()
  • 或替换 init(title : String, date:Date){ a = title super.init(nibName: "SecondViewController", bundle: nil) }
【解决方案2】:

您的代码一团糟。
由于双重设置为viewControllerd,应用程序可能会崩溃。
它被定义为常量 (let),但您为其设置了两次值:viewControllerd = storyboard.instantiateViewControllerWithIdentifier("a") as? SecondViewControllerviewControllerd = SecondViewController.init(title: "helo")

此外,super.init(nibName: "SecondViewController", bundle: nil) 在您使用情节提要时是无关紧要的。
init(coder aDecoder: NSCoder) 在您从情节提要中实例化视图控制器时调用,您只需将值传递给它即可。

您可以为新创建的视图控制器的属性设置一个值。
例如。

let storyboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle())
let viewControllerd = storyboard.instantiateViewControllerWithIdentifier("a") as? SecondViewController
viewControllerd.a = "helo"
addViewControllerAsChildViewController(viewControllerd!)

【讨论】:

  • 先生,我们可以不通过 init 传递值,就像我们在 xib 中所做的那样
  • @Rishab 我不明白你的评论。您不能将代码中的参数传递给从情节提要实例化的视图控制器。
  • 再一次,您可以通过为某个属性设置值来传递参数。
猜你喜欢
  • 1970-01-01
  • 2021-11-15
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多