如何从呈现的视图控制器上的按钮操作推送 viewcontroller

How to push viewcontroller from button action on the presented view controller

我一直在寻找答案,有人可以指导我吗,因为我有一个带有 tableview 的 TabBar 控制器,现在的情况是,如果用户未登录并单击任何行,则视图控制器带有带有 UIButton 的小视图呈现清晰的颜色。现在我的 TabBar 控制器是一个嵌入了导航控制器的根视图控制器,但是当我对呈现的视图控制器的 UIButton 单击执行操作时,我无法推送登录视图控制器。

TabBarController(嵌入了导航控制器以及根视图控制器)..> 显示了全屏自定义弹出视图控制器,当从此处单击登录按钮时......> 我想推送登录可以向后导航到 Tabbar 控制器的视图控制器。

有人可以指导我吗?提前致谢。

您可以使用委托来指示呈现视图控制器关闭模态并推送所需的视图控制器

我相信您首先需要关闭当前的视图控制器 (loginViewController) 并在完成块中推送新的视图控制器。所以在登录视图控制器中,试试这个:

let presentingController = self.presentingViewController
self.dismiss(animated: true) {
    presentingController?.navigationController?.pushViewController(NewViewController(), animated: true)
}

你试过添加动画吗

CATransition *transition = [[CATransition alloc] init];
transition.duration = 0.5;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[self.view.window.layer addAnimation:transition forKey:kCATransition];
[self presentViewController:dashboardWorkout animated:false completion:nil];