如何从嵌入在 Tab Bar Controller 中的 UIButton 推送 ViewController

问题描述

想要在我的标签栏旁边浮动一个按钮。按下此按钮时,将打开一个可以导航的视图(因此视图控制器嵌入在导航控制器中(?))。

在 UITabBarController {

ViewDidLoad() {
super.viewDidLoad()

//I have my 5 tab bar items set up programatically here.  
//The middle tab bar item is disabled because the button is on top of it

setupMiddleButton()

}

我的 setupMiddleButton 函数

let menuButton = UIButton(frame: CGRect(x: 0,y: 0,width: 52,height: 52))
//..varIoUs styling and alignment values...
view.addSubview(menuButton)
menuButton.addTarget(self,action: #selector(menuButtonAction(sender:)),for: .touchUpInside)

最后我尝试添加代码来推送视图控制器,但是在点击按钮时我收到了 nil。

@objc private func menuButtonAction(sender: UIButton) {
                
let createController = CreateViewController()
let nav3 = UINavigationController(rootViewController: createController)
            
nav3.navigationController!.pushViewController(createController,animated: true)

解决方法

我认为您可能将错误的参数传递给了 awk -v regex1='@/new[[:blank:]]+File\(/' 'BEGIN{print "Regex1 =",regex1}' Regex1 = new[[:blank:]]+File\( 函数,请尝试像这样更改您的代码:

menuButtonAction
,

所以我想通了。事实证明它比我想象的要简单得多,这让我觉得我在这个问题上解释得不好。无论如何,这是对我有用的代码。

let myViewController = ViewController()
let nav = UINavigationController(rootViewController: myViewController)

self.present(nav,animated:true,completion: nil)