带有表格视图的视图仅适用于默认视图控制器
Posted
技术标签:
【中文标题】带有表格视图的视图仅适用于默认视图控制器【英文标题】:View with table view only works with default View Controller 【发布时间】:2017-07-06 07:09:27 【问题描述】:我需要在我的应用程序中设置一个设置屏幕,我打算使用一个简单的静态表格视图来创建它。不幸的是,我遇到了一个问题。当我将自定义视图控制器分配给情节提要中的视图时,视图表在运行时变黑。
尽管视图控制器没有改变默认行为。此时我只重写了一种方法,将设置字符串放在标题中。
import Foundation
import UIKit
class SettingsViewController: UITableViewController
override func loadView()
self.title = "Settings"
当我删除自定义视图控制器时,表格会正常显示。
我使用以下代码进入视图。
guard let vc = UIStoryboard(name:"Main", bundle:nil).instantiateViewController(withIdentifier: "settingsViewController") as? UITableViewController else // or SettingsViewcontroller for the first version
print("Could not instantiate view controller with identifier of type SettingsViewController")
return
self.navigationController?.pushViewController(vc, animated:true)
什么可能导致这个问题?
【问题讨论】:
【参考方案1】:你必须调用super.loadView()
,你正在覆盖UITableViewController's loadView()
而不是调用超类方法,因为你得到了黑屏。
import Foundation
import UIKit
class SettingsViewController: UITableViewController
override func loadView()
self.title = "Settings"
super.loadView()
【讨论】:
以上是关于带有表格视图的视图仅适用于默认视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
uitableview didselectrowatindex 仅适用于第一个表视图而不适用于同一视图控制器中的第二个表视图?