解开可选值nil

时间:2018-06-21 07:38:56

标签: ios swift swift3 uitextfield

我是ios开发人员的新手。我使用功能将数据传递给一个视图控制器,再传递给另一个视图控制器

var vc = MessageViewController()
            vc.printSomething(address: address,id: id)

我将地址和ID传递给MessageViewController。在MessageViewController中

func printSomething(address: String,id: String) {    
      print("address",address)
      print("id",id)     
      address_text.text = "\(address)"
}

上面的代码中我打印地址,id,但是当我在UITextField address.text 上设置地址时,出现了包装错误。

2 个答案:

答案 0 :(得分:0)

我曾经创建一个类方法来像这样从情节提要中实例化视图控制器...

class MessageViewController: UIViewController {


 //other methods

  //MARK:- Class Method

  class func viewController() -> MessageViewController {
    return UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "<Storyboard Id>") as! MessageViewController
   }


}

您只需要用于实例化视图控制器

var vc = MessageViewController.viewController()

您可以像下面的图片一样设置情节提要标识符。

enter image description here

答案 1 :(得分:0)

嗨,这是变量未分配给 address_text 的问题,因为在调用方法( printSomething )时未初始化xib,在此之前需要保存两个变量MessageViewController中的地址和ID,并在 printSomething 方法中为这些变量分配ID和地址,然后您可以在 viewdidload 方法中将这些值赋给 address_text MessageViewController