首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >subView委托

subView委托
EN

Stack Overflow用户
提问于 2017-07-07 13:20:15
回答 1查看 265关注 0票数 0

我有4个UIViewController,即vcA、vcB、vcC和vcD。现在,vcB有一个有两行的tableView。vcB是vcA上的subViewed,它有一半的一面,就像iPad的设置屏幕。到这里为止,它还可以正常工作,但是如果我单击vcB的tableview的第一个单元格,那么vcC应该是subViewed的另一半,同样地,通过选择vcB的tableview的第二个单元格vcD应该是subViewed和vcC应该删除。

这是我的屏幕:

假设您选择“selecting”,另一个vcC的视图应该通过选择"Notification“vcD来查看&类似于subViewed,vcC应该删除。,别担心框架,我会设置的。并假设父视图在这里是vcA。

在这里,我尝试了delegate,但在subViews上,delegate不起作用--我认为,可以通过NSNotificationCenter实现,但还有其他方法吗?

谢谢,任何帮助都将不胜感激。

更新的

按照我用来得到结果的方式。但我知道这不是正确的方式,也不发生我想要的事情。

代码语言:javascript
复制
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)

            }


        }
}
EN

回答 1

Stack Overflow用户

发布于 2017-07-07 14:05:59

您分配了“iPadVc”,没有显示,您正在尝试添加countryVC视图。这是错误的。您刚刚分配了vc,但是在添加时,vc view将是nil

我的建议:将vcA对象引用传递给vcB,同时向vcA.view添加vcB.view

代码语言:javascript
复制
class vcA: UIViewController {

   func loadSlideVC() {
     viewcontrollerB = //Initialize the vcB 
     viewControllerB.containerVC = self
     //Add the view to vaA
   }
}

class vcB: UIViewController {
  weak var containerVC: vcA?

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  if UIDevice.Display.typeIsLike == UIDevice.DisplayType.ipad {
     if indexPath.section == 0 && indexPath.row == 0 {

        var sliderVC: SettingsViewController! = nil
        sliderVC = self.storyboard?.instantiateViewController(withIdentifier: "SettingsViewController") as! SettingsViewController
        containerVC?.view?.addSubview(sliderVC.view)
     }
    }
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44971848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档