【发布时间】:2016-01-18 14:09:37
【问题描述】:
我有一个 UIViewController (FiltersViewController),在故事板中包含 2 个组件,UITableView 和 UIStackView,如下所示:
class FiltersViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView! // PROBLEM: this is nil
override func viewDidLoad() {
super.viewDidLoad()
self.tableView // is always nil
}
func someFunc() {
self.tableView // is always nil
}
}
我将FiltersViewController.view 添加到当前 UIViewController 如下:
class CurrentViewController: UIViewController {
let floatingView: UIView = UIView()
var filtersViewController = FiltersViewController()
override func viewDidLoad() {
super.viewDidLoad()
floatingView.frame = CGRectMake(-201, 0, 270, 270)
floatingView.clipsToBounds = false
self.view.addSubview(floatingView)
floatingView.addSubview(filtersViewController.view)
}
}
如果我只将 FiltersViewController 更改为 UITableViewController 的子类,它就可以工作,如下所示:
class FiltersViewController: UITableViewController {
但是,此更改的另一个问题,Stack View 丢失了
关于我可能做错的任何想法。
【问题讨论】:
-
是的,我已经仔细检查过,现在上传截图
-
为什么要使用
UIViewController添加子视图而不是子类化UIView(或任何其他对象)然后将控制器添加到当前视图控制器? -
@PabloA。我最终得到了类似的东西,摆脱了
UIViewController
标签: ios objective-c swift uitableview uiviewcontroller