我有一个带有许多故事板和许多类似于下面的应用程序的应用程序 - 除了我下面显示的一个应用程序都很好。两个问题:1.我得到警告2.一个var不会转移
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
if (segue.identifier == "goToDetails") {
let nav3 = segue.destination as! UINavigationController
let svc3 = nav3.topViewController as! ActivityDetailTableViewController
svc3.majCat = majCat //Pass the category
svc3.subCat2 = subCat
print(subCat)
svc3.me = me
}
var subcat是问题 - 打印显示在调用ActivityDetailtableViewController之前具有值但是随后消失了 - 我尝试了一切 - 重命名等,没有任何帮助 - 其他2 var很好。
"丢失" var的问题是一个简单错误的结果 - 一个很容易犯下的 - 我从桌子行中而不是从故事板上划分,而我的segue的准备看起来像: 覆盖弹性准备(用于segue:uistoryboardsegue,发件人:任何!){
因此,表行segue在uistoryboardsegue之前执行!警告问题仍然存在 - 我确信它是因为我的桌面被嵌入了视图中。
在您的代码中,视图控制器的视图仅创建但未添加到任何视图层次结构中。如果要与视图控制器的加载一起呈现,则在viewWillAppear(_:)
或viewDidAppear(_:)
中实现它是最安全的。
当视图控制器试图打开(现在/推)另一个视图 来自ViewDidload的控制器(在出现自己的视图/加载之前),它将显示这样的 警告。
请参阅,有关:UiviewControllerRansition