【问题标题】:swift, embed ui view controller with navigation controller to allow for back button快速,将 ui 视图控制器与导航控制器嵌入,以允许后退按钮
【发布时间】:2018-02-09 09:42:06
【问题描述】:

我试图在我的 MyServiceTypeSelector() 控制器上获得一个后退按钮,以便在我展示 MyServiceTypeSelector() 之后我可以返回到 BRPServiceSelector() 控制器,我该怎么做?我是否需要将它嵌入到导航控制器中,如果是这样,我没有使用情节提要,所以需要以编程方式完成?

 import Foundation
 import UIKit

class BRPServiceSelector: UIViewController, UITextFieldDelegate {


override func viewDidLoad() {
    super.viewDidLoad()

    setupViews()



}



let businessAccountLabel: UILabel = {
    let label = UILabel()
    label.text = "Business Account"
    label.backgroundColor = .white
    label.translatesAutoresizingMaskIntoConstraints = false
    label.textAlignment = .center
    return label
}()







lazy var serviceSelectorButton: UIButton = {
    let button = UIButton(type: .system)
    button.backgroundColor = UIColor.black
    button.setTitle("Select A Service Type?", for: .normal)
    button.setTitleColor(UIColor.white, for: .normal)
    button.addTarget(self, action: #selector(presentServiceSelector), for: .touchUpInside)
    button.layer.cornerRadius = 3
    button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)

    return button
}()


func presentServiceSelector(){

    let msts = MyServiceTypeSelector()
    let navController = UINavigationController(rootViewController: msts)
    self.present(navController, animated: true, completion: nil)







let containerView: UIView = {
    let v = UIView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = .white
    return v
}()





let scrollView: UIScrollView = {
    let v = UIScrollView()
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = .white
    return v
}()


func setupViews(){

    containerView.addSubview(serviceSelectorButton)

    serviceSelectorButton.anchor(top: containerView.topAnchor, left: nil, bottom: nil, right: nil, paddingTop: 50, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 220, height: 25)

    serviceSelectorButton.centerXAnchor.constraint(equalTo: containerView.centerXAnchor).isActive = true
    }
}

}

【问题讨论】:

  • 如果您希望 VC 在导航堆栈中,那么 push 将其放入堆栈而不是呈现它。呈现通常用于模态窗口,它们通常没有导航栏。 self.navigationController?.pushViewController(vc, animated: true)
  • 太好了,我把它作为答案,这样你就可以关闭问题了

标签: swift xcode controller navigation


【解决方案1】:

如果您希望 VC 在导航堆栈中,则将其推入堆栈而不是呈现它。呈现通常用于模态窗口,它们通常没有导航栏。

self.navigationController?.pushViewController(vc, animated: true)

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2011-11-29
    • 1970-01-01
    相关资源
    最近更新 更多