将委托设置为现有视图控制器

时间:2015-04-30 14:11:33

标签: ios swift

我在segue上设置委托,但我需要将其设置为现有的?queryString=value,而不是在这里创建一个新的。

如何访问现有SfnViewController以传递它?

SfnViewController

2 个答案:

答案 0 :(得分:1)

我们无法帮助您,因为您还没有提供足够的信息。你说你有一个现有的SfnViewController。

  • 此对象何时何地创建?
  • 谁拥有它?
  • 您的ViewListController是否有引用它?

如果你的整个对象只有一个共享的SfnViewController,你应该考虑遵循单例设计模式并使你的SfnViewController成为单例。然后,您将使用SfnViewController类的类方法来获取对单例的引用。

答案 1 :(得分:0)

如果你的意思是使用一些你可以在tableView:accessoryButtonTappedForRowWithIndexPath:方法中确定的特定控制器,那么你应该在调用performSegueWithIdentifier时在“sender”属性中发送它:

class ViewerListController {

    func tableView(tableView: UITableView, accessoryButtonTappedForRowWithIndexPath indexPath: NSIndexPath) {
        editViewer = fetchedResultController.objectAtIndexPath(indexPath) as? Viewer
        performSegueWithIdentifier("editViewer", sender: editViewer)
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "editViewer" {
            let editViewerViewController = segue.destinationViewController.topViewController as! EditViewerViewController
            editViewerViewController.viewer = editViewer

            let editViewer = sender as! EditViewerViewController
            editViewerViewController.delegate = editViewer.delegate
        }
    }
}