Возвращаясь к предыдущей странице программно - PullRequest
0 голосов
/ 05 января 2019

введите описание изображения здесь Я создаю страницу входа пользователя для моего приложения IOS. Я пытаюсь сделать все программно, не используя переход в основной доске. Мне удалось перейти на следующую страницу, как вы можете видеть в коде, и создать собственный элемент левой задней панели. Но я не знаю, как вернуться на первую страницу, когда я нажимаю на эту кнопку. Я прикрепил скриншот моей доски объявлений и приложения ниже. Подскажите, пожалуйста, как я могу вернуться на первую страницу, нажав кнопку X? Вот мой код:

импорт UIKit

class FirstPage: UIViewController {

let hgt = UIScreen.main.bounds.height/2


private let loginSignup: UIButton = {
    let button = UIButton(type: .system)
    button.setTitle("Login or Sign Up", for: .normal)
    button.translatesAutoresizingMaskIntoConstraints = false
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 20)
    button.setTitleColor(.green, for: .normal)
    button.addTarget(self, action: #selector(loginSignupBtn), for: .touchUpInside)
    return button
}()

@objc private func loginSignupBtn() {
    let vc = self.storyboard!.instantiateViewController(withIdentifier: "Login") as! Login
    vc.loadViewIfNeeded()
    self.navigationController?.pushViewController(vc, animated: true)
    self.navigationController?.isNavigationBarHidden = false
    let backItem = UIBarButtonItem(title: "X ", style: UIBarButtonItem.Style.done, target: nil, action: nil)
    let font = UIFont.boldSystemFont(ofSize: 26)
    backItem.setTitleTextAttributes([NSAttributedString.Key.font:font] ,for: .normal)
    backItem.tintColor = UIColor.green
    vc.navigationItem.leftBarButtonItem = backItem
}
override func viewDidLoad() {
    super.viewDidLoad()
    setupLayout()
}
override func viewWillAppear(_ animated: Bool) {

}
private func setupLayout() {
    let topImageContainerView = UIView()
    //topImageContainerView.backgroundColor = .yellow
    view.addSubview(topImageContainerView)
    //enable auto layout
    topImageContainerView.translatesAutoresizingMaskIntoConstraints = false
    topImageContainerView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
    topImageContainerView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    topImageContainerView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    topImageContainerView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5).isActive = true
    view.addSubview(loginSignup)
    loginSignup.translatesAutoresizingMaskIntoConstraints = false
    loginSignup.topAnchor.constraint(equalTo: view.topAnchor,constant:hgt/2).isActive = true
    loginSignup.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
    loginSignup.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
    loginSignup.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5).isActive = true

}

}

введите описание изображения здесь

1 Ответ

0 голосов
/ 05 января 2019

Здесь вам нужно добавить цель и селектор для нажатия кнопки x

let backItem = UIBarButtonItem(title: "X ", 
  style: UIBarButtonItem.Style.done,
   target: self, action:#selector(goBack))

@objc func goBack(_ bar:UIBarButtonItem) {
   self.navigationController?.popToRootViewController(animated:true)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...