首页 > 解决方案 > 将视图控制器子类化为基础控制器后,按钮无法正常工作

问题描述

我正在制作一个简单的应用程序,它现在有 3 页,我想为我的所有视图控制器提供一个基本视图控制器。但是我在第一页上的按钮运行良好,点击后转到第二页,不再正常工作,这意味着该按钮打开了一个空白页而不是第二页。但是当我从其他视图控制器中删除子类时,该按钮可以正常工作。顺便说一句,我正在以编程方式 100% 创建这个应用程序。我知道我没有提供代码或我的代码的任何屏幕截图,但我希望你能帮助我!谢谢!:)

// Setup the login button
func setupLoginButton() {

    loginButton.backgroundColor = UIColor.clear
    loginButton.setTitle("Login", for: .normal)
    loginButton.titleLabel?.font = UIFont(name: "Avenir-Heavy", size: 25)
    loginButton.setTitleColor(baseColor, for: .normal)
    loginButton.layer.borderWidth = 1
    loginButton.layer.borderColor = baseColor.cgColor
    loginButton.layer.cornerRadius = 25

    // Make it go to the main screen when pressed
    loginButton.addTarget(self, action: #selector(loginButtonPressed), for: .touchUpInside)

    view.addSubview(loginButton)
    addLoginButtonConstraints()

}

// Add the constraints to the login button
func addLoginButtonConstraints() {

    loginButton.translatesAutoresizingMaskIntoConstraints = false
    loginButton.heightAnchor.constraint(equalToConstant: 50).isActive = true
    loginButton.widthAnchor.constraint(equalToConstant: 335).isActive = true
    loginButton.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
    loginButton.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: -5).isActive = true

}

// When login button is pressed
@objc func loginButtonPressed() {

    let mainPage = MainScreen()
    present(mainPage, animated: true, completion: nil)

}

所以在这里,当我点击登录按钮时,它应该转到主页面,但它只是打开了一个空白页面。

这里是主页

import UIKit

class MainScreen: BaseAndExtensions {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

}

BaseAndExtensions 是基本视图控制器。

标签: iosswiftbuttonuiviewcontrollersubclassing

解决方案


推荐阅读