0

我正在使用下面的代码来显示,但由于这条线MyEditViewController,所有的现场插座MyEditViewController为零let editController = MyEditViewController()。在这里,我正在创建新实例。所以现在网点是。有没有其他方法可以调用编辑控制器而不创建它的实例?

@IBAction func editMethod(sender: UILongPressGestureRecognizer) {
        if sender.state == UIGestureRecognizerState.Began {
            let cell = sender.view as! MyTableViewCell
            let editController = MyEditViewController()
            editController.sample= samples[cell.tag]
            presentViewController(editController, animated: true, completion: nil)
        }
    }
4

2 回答 2

1

要使用您的插座实例化新控制器,您可以使用 xib

let editController = MyEditViewController(nibName: "MyEditViewController", bundle: nil)

或者您可以将 StoryboardId 归因于您的控制器并与 instantiateViewControllerWithIdentifier 一起使用

let editController = storyboard?.instantiateViewControllerWithIdentifier("MyEditViewControllerStoryboardId") as! MyEditViewController

或者作为针对您的案例的建议,您可以使用故事板 segues 使用不同的方法。在此处阅读有关它的更多信息

performSegueWithIdentifier("PresentMyEditController", sender: self)
于 2015-12-18T14:51:16.830 回答
1

你不应该启动一个类,你应该将它作为 Storyboard 中的 ViewController 启动。因此,在您的情况下,为您的控制器设置一个“故事板 ID”。

在此处输入图像描述

然后使用:

    let editController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("StoryboardID") as! MyEditViewController

所以所有的网点都应该可以正常工作。

于 2015-12-18T14:42:33.120 回答