gpt4 book ai didi

ios - 委托(delegate)快速丢失 View Controller 对象

转载 作者:行者123 更新时间:2023-11-30 14:19:23 25 4
gpt4 key购买 nike

全部,

我已经设置了一个协议(protocol), View Controller 是该协议(protocol)的委托(delegate),如下所示:

import Foundation

protocol PayButtonProtocol {
func enablePayButton()
func disablePayButton()
}

View Controller 是委托(delegate):

class ViewController:   UIViewController, PayButtonProtocol

协议(protocol)功能如下:

func enablePayButton() {
println("Button enabled")
PAYBarButton.enabled = false
}

func disablePayButton() {
PAYBarButton.enabled = false
}

我设置了一个类并分配了委托(delegate):

class Trigger
{
var delegate:PayButtonProtocol?

func EnablePayButton()
{
delegate?.enablePayButton()
}
}

然后我设置触发器来运行该函数:

let localtrigger = Trigger()
localtrigger.delegate = ViewController()
localtrigger.EnablePayButton()

这有效并且“按钮已启用”显示在控制台中。但是栏按钮(PAYBarButton)为零,并且 View Controller 似乎已经失去了其层次结构,因为我无法访问任何 View Controller 对象。 View Controller 是用界面生成器构建的。有人有什么想法吗?是吗

localtrigger.delegate = ViewController()

重建 viewconotroller 并使原始 View 无法访问?如果是这样我该怎么做?

最佳答案

如果您要在 ViewController 类中创建 localTrigger 对象,您可以执行以下操作:

let localtrigger = Trigger()
localtrigger.delegate = self // self is an instance of ViewController
localtrigger.EnablePayButton()

关于ios - 委托(delegate)快速丢失 View Controller 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com