我不知道如何具体说明标题,在这里我将解释所需的内容。
我的问题:
这是针对天气应用程序的,我允许用户在其中更改要检查天气的城市。问题是我以编程方式创建了视图控制器。意味着prepareForSegue覆盖功能不适用。
现在,我确实找到了要解决的方法而不是prepareForSegue(贝洛是代码)的答案,但是,由于它不是替代,我应该在哪里调用该函数。
代码:
func prepareForSegue() {
let changeCityVC = ChangeCityViewController()
changeCityVC.delegate = self
present(changeCityVC, animated: true, completion: nil)
}
谢谢
答案 0 :(得分:0)
两个选择跳入我的脑海:
向要显示的视图控制器添加一个属性,例如“ titleText”。然后,当您创建该视图控制器时,请设置该属性的值,并使用viewDidLoad将titleText分配给您也要过渡的视图控制器的标题。
创建一个协议,并在该类型的新视图控制器上添加一个委托属性。在第一个视图控制器中,将创建者分配为委托。然后,在viewDidLoad(或任何位置)中,新的视图控制器可以向委托人(本例中为演示者)询问所需的任何信息(即标题)。
答案 1 :(得分:0)
您的prepareForSegue
方法实际上并没有为接缝做准备。它只是创建一个VC并将其呈现。因此,它实际上应该称为presentChangeCityVC
或类似的名称。
关于在何处调用该方法,只要要显示VC就可以调用它!假设您有一个显示“ Change City”的按钮。您可以在按钮的目标中调用该方法:
func changeCityButtonPressed() {
presentChangeCityVC()
}