从UISplitViewDetail创建一个代理到在Swift中掌握的错误 [英] errors creating a delegate from UISplitViewDetail to master in Swift

查看:203
本文介绍了从UISplitViewDetail创建一个代理到在Swift中掌握的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SWIFT / IOS 8.2
我试图将我的 CalculatorViewController 设置为委托目标,以便我可以获取数据 - 但是我似乎设置错误: EXC_BAD_ACCESS(code:2)

SWIFT / IOS 8.2 I am trying to set my CalculatorViewController as the delegate target so I can get data - but I seem to be setting it wrong: "EXC_BAD_ACCESS (code:2)"

(GraphView.swift)

(in GraphView.swift)

protocol CalculatorViewDataSource: class {
    func calculateYForXEquals(sender: CalculatorViewController, currentX: CGFloat) ->CGFloat?
}

class GraphView: UIView {
    weak var calculatorViewDataSource: CalculatorViewDataSource?
    //...
}

(在GraphViewController.swift中)

(in GraphViewController.swift)

class GraphViewController: UIViewController {
    @IBOutlet weak var graphView: GraphView! {
        didSet{
            graphView.calculatorViewDataSource = self.view.superview?.superview as CalculatorViewController
        }
    }
// ...
}

(在CalculatorViewController.swift中)

(in CalculatorViewController.swift)

class CalculatorViewController: UIViewController, CalculatorViewDataSource{
    // ...
}

func calculateYForXEquals(sender: CalculatorViewController, currentX: CGFloat) ->CGFloat? {
    return nil
}

问题:

当我尝试在GraphViewController中设置代理时,我遇到了一个EXC_BAD_ACCESS(code:2)错误...任何想法为什么?

I get a crash with a "EXC_BAD_ACCESS (code:2)" error when I try to set the delegate in the GraphViewController... Any idea why?

我不知道如何从 CalculatorViewController 级别进入课堂。
这是故事板:

I don't know how to get to the class from the CalculatorViewController level. Here's the storyboard:

-> SplitViewController - NavigationController - (Master) CalculatorViewController
         I
     NavigationController - (Detail) GraphViewController


推荐答案

尝试这样做:

    var graphViewController: GraphViewController?

    private func setupSplitViewController() {
        let masterNavigationController: AnyObject? = splitViewController?.viewControllers.first
        graphViewController = masterNavigationController!.topViewController as? GraphViewController
        graphViewController!.graphView.calculatorViewDataSource = self
    }

这篇关于从UISplitViewDetail创建一个代理到在Swift中掌握的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆