Skip to content

UIView that conforms StatefulViewController protocol cannot be destroyed #71

Description

@YK-Unit

UIView that conforms StatefulViewController protocol does not be destroyed.

Here is a StatefulViewControllerDemo.zip to illustrate this issue.

PS: the core code

class StateView: UIView, StatefulViewController {

    public var defaultLoadingView: UIView? {
        let defaultView = UIView()
        defaultView.backgroundColor = UIColor.white

        let label = UILabel()
        label.textColor = UIColor.blue
        label.text = "loading..."
        defaultView.addSubview(label)
        label.snp.makeConstraints { (maker) in
            maker.height.equalTo(20)
            maker.centerX.equalToSuperview()
            maker.top.equalToSuperview().offset(160)
        }
        return defaultView
    }

    public var defaultEmptyView: UIView? {
        let defaultView = UIView()
        defaultView.backgroundColor = UIColor.white

        let label = UILabel()
        label.textColor = UIColor.blue
        label.text = "no content"
        defaultView.addSubview(label)
        label.snp.makeConstraints { (maker) in
            maker.height.equalTo(20)
            maker.centerX.equalToSuperview()
            maker.top.equalToSuperview().offset(160)
        }
        return defaultView
    }


    override init(frame: CGRect) {
        super.init(frame: frame)

        loadingView = defaultLoadingView
        emptyView = defaultEmptyView
        setupInitialViewState()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    // FIXME: StateView cannot be destroyed
    deinit {
        print("StateView deinit ...")
    }

    func hasContent() -> Bool {
        return false
    }

}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions