【发布时间】:2015-10-04 15:58:57
【问题描述】:
我一直在努力切换视图控制器。
我得到了以下故事板:
左上角的 VC 是登录 VC,它通过模态 segue 将视图推送到 MainViewController(左下角)。
通过以下方式可以正常工作:
self.performSegueWithIdentifier("MainSegue", sender: self)
MainViewController 承载一个“菜单”栏项目,单击该项目可启动可可控件 SSASideMenu 并呈现 LeftSideMenu VC。这也很好用。
LeftSideMenu VC 有 2 个菜单项(“home”和“order”)。项目“home”将返回 MainViewController(下面的案例 0 - 工作正常)。项目“订单”需要呈现 ItemTableViewController(右上角),它基本上是一个 tableVC,其中一个原型单元嵌入在导航控制器中。
下面的案例 1 是所有错误的地方:
func tableView(..........) {
tableView.deselectRowAtIndexPath(indexPath,animated: true)
switch (indexPath.row) {
case 0:
sideMenuViewController?.contentViewController =
UINavigationController(rootViewController: MainViewController())
sideMenuViewController?.hideMenuViewController()
break
case 1:
sideMenuViewController?.contentViewController =
UINavigationController(rootViewController: ItemTableViewController())
sideMenuViewController?.hideMenuViewController()
break
}
}
所以,案例1会导致ItemTableViewController的func tableView被调用:
func tableView(tableView: UITableView, cellForRowAtIndexPath ...) {
let cellIdentifier = "MenuItemTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as! MenuItemTableViewCell!
let item = items[indexPath.row]
cell.cellTitle.text = item.name // **cell is always nil**
....
单元格始终为零。
我尝试通过以下方式注册课程(尽管我不应该这样做,因为我正在使用情节提要):
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as! MenuItemTableViewCell!
if cell == nil {
tableView.RegisterClass(MenuItemTableViewCell.self, forCellReuseIdentifier: cellIdentifier)
cell = MenuItemTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: cellIdentifier)
let item = items[indexPath.row]
cell.cellTitle.text = item.name // **cell is still nil**
我也尝试过使用 segue,但在 LeftSideMenu 错误中出现 segue not exists(它确实存在于正确的 cellIdentifier 中)。
底线是我不能调用ItemTableViewController(右上tableVC)!
请问有什么线索吗?
【问题讨论】:
标签: ios swift uitableview uiviewcontroller uinavigationcontroller