xcode 从导航控制器中关闭推送的视图

iyfamqjs  于 2023-03-04  发布在  其他
关注(0)|答案(6)|浏览(145)

我有一个带有视图控制器的导航控制器,视图控制器显示一个按钮。该按钮通过一个按钮链接到另一个视图控制器,按钮会自动添加一个带有后退按钮的顶部导航栏。这一切都工作正常。按下后退按钮会从第二个视图滑出并返回到第一个视图。
我在第二个视图控制器上有一个按钮,当按下时会运行一些代码和一个对第一个视图控制器的代理调用。
现在我只需要从代码中删除第二个按下的视图,就像按下后退按钮一样。我尝试过使用dismissModalViewCcontrollerAnimated和dismissViewControllerAnimated,但是它们都删除了整个导航控制器,删除了视图2和1(返回巴克到我的主菜单)。
滑出视图的正确方法是什么?

xjreopfe

xjreopfe1#

获取对UINavigationController的引用并调用

- (UIViewController *)popViewControllerAnimated:(BOOL)animated

马上去办。

4jb9z9bj

4jb9z9bj2#

在Swift中它会调用方法

navigationController?.popViewController(animated: true)
cbwuti44

cbwuti443#

如果使用push segue,则使用popViewController

@IBAction func backButtonClicked(_ sender: Any) {
    self.navigationController?.popViewController(animated: false)
}
56lgkhnf

56lgkhnf4#

在swift中,您还可以调用:

self.navigationController?.popToRootViewControllerAnimated(true)
sdnqo3pr

sdnqo3pr5#

在Objective-C上

[self.navigationController popViewControllerAnimated:YES];

用于跳转到第一个root控制器

[self.navigationController popToRootViewControllerAnimated:YES];

或者是对特定控制器的可能移动

[self.navigationController popToViewController:(nonnull UIViewController *) animated:(BOOL)];

移动控制器的特定动画过程。如果动画是false,则控制器将不显示动画。UIViewController必须来自堆栈上的控制器。

xkrw2x1b

xkrw2x1b6#

如果NavViewController与UIModalPresentationFullScreen一起使用,则以下行将起作用

self.navigationController?.dismiss(animated: true, completion: nil)

相关问题