ios - 尝试从父 IOS swift 3 中删除子项时,我的代表为零

标签 ios swift

我有一个 subview 接管了整个父 View 。我希望通过使用协议(protocol)从父级调用一个方法来将子级从父级中移除,但我的委托(delegate)每次都是零。如果您需要更多信息,我会在下面添加我的示例作品,请告诉我

protocol childDelegate: class {
           func removeFromParent()
        }
        class ChildAction: UITableViewController {
           @IBAction func btnRemove(_sender: Any){
              if(delegate != nil){
               self.delegate?.removeFromParent()
            }
          }  
        }
        class ParentClass: UIViewController:childDelegate {

         var delegate:childDelegate?
         private ChildActionView:ChildAction{
             let storyboard = UIStoryBoard(name: "Main", bundle: Bundle.main)
             let viewC = storyboard.instantiateViewController(withIdentifier: "ChildAction") as! ChildAction
              self.delegate = viewC as? childDelegate
              self.addChildViewController(viewC)
              return viewC

         }
        @IBAction func btnAddChild(_sender: Any){
              addChild(child:ChildActionView)
            }

        func addChild(child: UIViewController){
            self.addChildViewController(child)
            view.addSubview(child.view)
            child.didMove(toParentViewController: self)
        }

          func removeFromParent(){
              //remove from parent 

          }
        }

Child view controller parent view controller image

最佳答案

您没有在代码的任何位置设置ChildAction 实例(您的childVC)的delegate 变量。您将 parent's delegate 设置为 child 但这在您的代码中毫无意义。您需要将child 的委托(delegate) 设置为parent。当前子项没有任何对其父项的引用,因此它的委托(delegate)自然是 nil。如果有什么不清楚的地方,请告诉我。

关于ios - 尝试从父 IOS swift 3 中删除子项时,我的代表为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44948517/

相关文章:

ios - 如何在 Swift 中将 UITextField 中的数据用作数组?

ios - segue 创建 View Controller 的新实例 swift

iOS UnitySendMessage 调用参数

iOS:以编程方式从应用程序退出到主屏幕并优雅地退出动画?

ios - GMSMapView 指南针按钮不可见

swift - Vapor:发送帖子请求

ios - 有没有办法导出 Testflight 外部测试人员的电子邮件

ios - 检查 CLLocation 是基于 GPS 还是基于蜂窝

ios - AVSpeechSynthesizer 支持哪些语言?

ios - SWIFT:如何使用不同类的performSegueWithIdentifier