混合编程和故事板.单击按钮不会打开导航控制器中的下一个VC



我有一个选项卡栏控制器,它是用程序构建的。它看起来像这样:

class NewTabBarController:UITabBarController{

override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
createTabbar()
}
func createTabbar() {
let deliveryViewController = storyBoard.instantiateViewController(identifier: "DeliveryViewController") as? DeliveryViewController
deliveryViewController?.tabBarItem.image = #imageLiteral(resourceName: "icon_deliver")
deliveryViewController?.title = "Delivery"
planDictionary["planType"] = Constants.Mealplan.deliveryPlan
deliveryViewController?.planDictionary = planDictionary
// Excluded other tabs and view controller creations since they are the same
}

现在这个DeliveryViewController是在故事板中创建的,并嵌入到导航控制器中

它有一个按钮点击动作:

@IBAction func saveNameButton(_ sender: UIButton) {

let addressViewController = storyBoard.instantiateViewController(identifier: "AddressViewController") as? AddressViewController
addressViewController?.planDictionary = planDictionary
navigationController?.pushViewController(addressViewController!, animated: true)
}

当选项卡位于情节提要中时,按钮单击操作正在工作。但是经过程序化重构后,它不会将下一个VC放在导航堆栈上。

我们将不胜感激。

几乎可以肯定。。。

此行:

let deliveryViewController = storyBoard.instantiateViewController(identifier: "DeliveryViewController") as? DeliveryViewController

正在实例化DeliveryViewController的实例,并将其设置为选项卡的视图控制器。但是希望加载UINavigationController,并使DeliveryViewController成为该NavController的根视图控制器,并将该NavController设置为选项卡项。

相关内容

最新更新