我正在为代理设置一个代理,但是我需要将其设置为现有的SfnViewController,而不是在这里正在创建新代理的地方。

如何访问现有的SfnViewController以使其通过?

class ViewerListController {

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

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

            //Need this as the existing SfnViewController
            editViewerViewController.delegate = SfnViewController()
        }
    }
}

最佳答案

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


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


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

关于ios - 将代理设置为现有 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29970058/

10-09 09:15