当前位置: 首页 > 面试题库 >

代理Swift语言

郜彦
2023-03-14
问题内容

我有两个控制器,我需要调用第一个控制器到第二个控制器的功能:在第二个控制器中,我在类中创建了协议和初始化委托:

    protocol testProtocol {
        func testDelegate() // this function the first controllers
    }

    class SecondViewController: UIViewController {
        var delegate: testProtocol?
    ....
    }
    @IBAction func testDelegateClicked(sender : AnyObject) {
            delegate?.testDelegate()
        }

第一控制人

        ViewController类:UIViewController,testProtocol {

        var secondController: SecondViewController = SecondViewController()

        override func viewDidLoad() {
            super.viewDidLoad()

            secondController.delegate = self
        }
        func testDelegate() {
            println("Hello delegate")
        }</pre>

但是函数没有被调用


问题答案:

我将假设您正在使用情节提要。如果我是正确的话,那么您的问题是,secondController在您的“第一个控制器”中创建的“”不是您要演示的实际内容。您将需要设置secondController你的prepareForSegue:

第二控制人

不变的

第一控制人

class ViewController: UIViewController, testProtocol {

    // you will want to add the ? since this variable is now optional (i.e. can be nil)
    var secondController: SecondViewController? // don't assign it a value yet

    // ...

    // implementation of the protocol
    func testDelegate() {
        println("Hello delegate")
    }

    // your prepare for segue
    override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
        // get the controller that storyboard has instantiated and set it's delegate
        secondController = segue!.destinationViewController as? SecondViewController
        secondController!.delegate = self;
    }
}


 类似资料:
  • 问题内容: 我对Swift的了解还不够多,但是我注意到的一件事是没有例外。那么如何在Swift中进行错误处理呢?有没有人发现任何与错误处理相关的信息? 问题答案: 斯威夫特2&3 Swift 2中的情况有所变化,因为有了新的错误处理机制,该机制与异常有些相似,但在细节上有所不同。 1.指示错误可能性 如果函数/方法想要表明它可能抛出错误,则应包含这样的关键字 注意:函数没有实际抛出的错误类型的规范

  • 问题内容: 如何在Swift语言中实现反射? 如何实例化课程 问题答案: 请注意,Swift类现在已命名为名称空间,因此它将是“ AppName.MyViewController”而不是“ MyViewController” 从XCode6-beta 6/7开始不推荐使用 使用XCode6-beta 3开发的解决方案 多亏了Edwin Vermeer的回答,我能够通过执行以下操作来构建一些东西来将

  • 本文向大家介绍Swift语言过滤,包括了Swift语言过滤的使用技巧和注意事项,需要的朋友参考一下 示例 通过从流中选择通过特定条件的元素来创建流称为过滤            

  • Swift 是编写程序的绝佳选择,无论是手机、电脑还是服务器,任何能跑代码的设备都是如此。它是一门集现代语言之大成,集结了苹果的工程师文化精髓以及开源社区多样化于一身的编程语言。编译器为专为性能所调优,语言专为开发所优化,二者绝不互相妥协。

  • 本文向大家介绍深入理解Swift语言中的闭包机制,包括了深入理解Swift语言中的闭包机制的使用技巧和注意事项,需要的朋友参考一下 在 Swift 中的闭包类似于结构块,并可以在任何地方调用,它就像 C 和 Objective C 语言内置的函数。 函数内部定义的常数和变量引用可被捕获并存储在闭包。函数被视为封闭的特殊情况,它有 3 种形式。 在 Swift 语言闭合表达式,如下优化,重量轻语法风

  • Swift fallthrough 语句让 case 之后的语句会按顺序继续运行,且不论条件是否满足都会执行。 Swift 中的 switch 不会从上一个 case 分支落入到下一个 case 分支中。只要第一个匹配到的 case 分支完成了它需要执行的语句,整个switch代码块完成了它的执行。 注意:在大多数语言中,switch 语句块中,case 要紧跟 break,否则 case 之后的