繁体   English   中英

如何快速按下UITableViewCell迅速调用另一个控制器?

[英]How to call another controller on long press of UITableViewCell in swift?

我使用以下代码来显示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)
        }
    }

您不应该启动类,而应该从Storyboard将其作为ViewController进行初始化。 因此,根据您的情况,为控制器设置一个“ Storyboard-ID”。

在此处输入图片说明

然后使用:

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

因此,所有网点都应该正常工作。

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

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

或者,您可以将StoryboardId分配给控制器,并与InstantiateViewControllerWithIdentifier一起使用

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

或者,作为案例的建议,可以使用情节提要segues使用其他方法。 在这里了解更多

performSegueWithIdentifier("PresentMyEditController", sender: self)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM