ios - 使用自定义 init 实例化带有标识符的 View Controller

标签 ios swift uiviewcontroller instantiation

如何使用 Storyboard 方法使用自定义 init 实例化自定义 ViewController 类?

如何调用ProfileViewController(userId: "abc") init?

实例化 View Controller

let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("ProfileViewController") as UIViewController

自定义 View Controller 类

class ProfileViewController: UIViewController {

var userId = ""

init(userId: String) {
    self.userId = userId
    super.init(nibName: nil, bundle: nil)
}

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

override func viewDidLoad() {
    super.viewDidLoad()

    let menuItem = UIBarButtonItem(image: UIImage(named: "MenuIcon"), style: .Plain, target: self, action: "menuBarButtonItemClicked")
    menuItem.tintColor = UIColor.whiteColor()
    self.navigationItem.leftBarButtonItem = menuItem
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

最佳答案

我认为你想做的事情是不可能的。 但是你可以做这样的事情

let destViewController = mainStoryboard.instantiateViewControllerWithIdentifier("ProfileViewController") as ProfileViewController
destViewController.userId = "abc"

关于ios - 使用自定义 init 实例化带有标识符的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27144644/

相关文章:

ios - UIDatePicker 与伊斯兰历的奇怪行为

ios - iTunes connect 提交声称我使用的是 beta Xcode 版本,但我没有使用

ios - 在 swift3 中安装 pod 后,链接器命令失败,退出代码为 1(使用 -v 查看调用)

ios - 无法在 Swift 的 Storyboard 中加载 UIViewController XIB 文件

ios - 在 subview Controller 之间切换

ios - 如何设置一个简单的委托(delegate)来在两个 View Controller 之间进行通信?

ios - 无法将大多数对象拖动到 Storyboard

ios - Xcode Storyboard 中的对象消失

swift - Swift 中的命令模式与结构的变异方法

ios - 防止 subview Controller 上未处理的触摸事件传递到容器 View