【发布时间】:2017-12-11 19:33:53
【问题描述】:
我有 4 个UIViewController,分别是 vcA、vcB、vcC 和 vcD。现在,vcB 有一个有两行的tableView。 vcB 在 vcA 上被 subViewed 一半,就像 iPad 的设置屏幕一样。到这里为止,它工作正常,但我需要如果我点击 vcB 的 tableView 的第一个单元格,然后 vcC 应该在另一半侧被 subViewed,同样通过选择 vcB 的 tableview 的第二个单元格 vcD 应该被 subViewed 并且 vcC 应该被删除。
这是我的屏幕:
假设您选择“选择国家”,其他 vcC 的视图应该通过选择“通知”进行子查看和类似的,vcD 应该被子查看并且 vcC 应该被删除。 ,不要担心框架,我会设置的。并假设这里的父视图是vcA。
在这里,我尝试使用delegate,但我认为在子视图上delegate 不起作用,可以通过NSNotificationCenter 实现,但还有其他方法吗?
谢谢任何帮助将不胜感激。
更新
按照我用于获取结果的方式。但我知道这不是正确的方法,也没有发生我想要的。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.section)
print(indexPath.row)
if UIDevice.Display.typeIsLike == UIDevice.DisplayType.ipad {
let iPadVc = iPadSettingViewController()
if indexPath.section == 0 && indexPath.row == 0 {
var sliderVC: SettingsViewController! = nil
sliderVC = self.storyboard?.instantiateViewController(withIdentifier: "SettingsViewController") as! SettingsViewController
sliderVC.view.frame = CGRect(x:0, y: 64, width: CGFloat((iPadVc.view.frame.size.width)/2.4), height: CGFloat(iPadVc.view.frame.size.height-64))
iPadVc.view?.addSubview(sliderVC.view)
}
else if indexPath.section == 0 && indexPath.row == 2 {
var countryVC : CountryViewController! = nil
countryVC = self.storyboard?.instantiateViewController(withIdentifier: "CountryViewController") as! CountryViewController
countryVC.view.frame = CGRect(x:CGFloat((iPadVc.view.frame.size.width)/2.4), y: 64, width: CGFloat((iPadVc.view.frame.size.width) - (iPadVc.view.frame.size.width)/2.4), height: CGFloat(iPadVc.view.frame.size.height-64))
iPadVc.view?.addSubview(countryVC.view)
}
}
}
【问题讨论】:
-
添加视图控制器替换的代码,你试过了。那只适用于iPad。你也支持 iPhone 吗?
-
@Subramanian 暂时仅适用于 iPad,而对于 iPhone,屏幕的显示会有所不同,我为 iPhone 制作了所有内容,但在 iPad 上卡住了。 ://
-
你可以添加你尝试过的代码吗?
-
@Subramanian 我更新了我的问题。
-
您分配了 'iPadVc' 并且没有显示您正在添加 countryVC 视图。您刚刚分配了 vc,但 vc
view在您添加时将为空。
标签: ios uitableview ipad swift3 subviews