【发布时间】:2019-06-10 20:12:05
【问题描述】:
我正在使用 Swift 4.2 和 Xcode 10.2。
我创建了一个自定义警报,它是一个名为 DialAlert 的 UIViewController。它覆盖在当前UIViewController 之上,并有两个按钮,Call 和Cancel。
当Call 被点击时,我使用名为callTapped. 的委托方法将点击报告给底层视图控制器,该方法使用各种其他方法执行调用设置。在执行呼叫设置时,我想用状态更新DialAlert viewcontroller。但是我无法从委托方法callTapped 访问它的属性,因为它是在 tableView 方法中创建的,如下所示:
let dialAlert = self.storyboard?.instantiateViewController(withIdentifier: Constants.Storyboard.dialAlert) as! DialAlert
我在这个 tableView 方法中设置了它的所有初始属性。
我在课程开始时尝试了这段代码:
var dialAlert = UIViewController() as! DialAlert
然后在整个代码中引用 self.dialAlert(它确实编译了),但在运行时我收到一个错误,我无法将 UIViewController 类型的值转换为 DialAlert。
如何在创建实例的方法之外的方法中修改dialAlert 的属性?我在 SO 中找到了一些看起来很有希望的答案,但最近没有,也没有任何意义。
【问题讨论】:
标签: swift delegates viewcontroller subview