如何从推送segue中删除带有故事板的viewController?

问题描述 投票:10回答:5

我不知道为什么dismissViewControllerAnimated:completion:。我只是想这样做。

我从一开始

[self performSegueWithIdentifier:@"my_segue" sender:self];

但是,我打电话给解雇而不是没有任何反应。我可以创建另一个segue,但它会创建一个新的视图控制器。

我的问题是:如何解雇performSegueWithIdentifier:sender:

iphone objective-c cocoa-touch storyboard segue
5个回答
31
投票

你在uiviewController中有一个导航栏,它正在调用:

[self performSegueWithIdentifier:@"my_segue" sender:self];

如果是这样,您将需要使用:

[self.navigationController popViewControllerAnimated:YES];

从堆栈弹出视图。有一个segue调用,但框架似乎调用:

presentViewController:animated:completion:

要么:

pushViewController:animated:

作为适当的。

射线


2
投票

你可以打电话

[self dismissViewControllerAnimated:YES completion:nil];

从视图控制器,因为视图控制器是由segue推动的。


0
投票

[my_segue_view_controller dismissModalViewControllerAnimated: YES]

(不确定,但它在我的实践中有效)


0
投票

performSegueWithIdentifier:sender:本身并没有被解雇,这只是被称为启动命名segue的方法。在segue中发生的事情更有意义。

你应该调用dismissViewControllerAnimated:completion:是正确的,它应该由呈现视图控制器调用,该控制器之前使用presentViewController:animated:completion:调用了呈现的视图控制器。有关更多信息,请参阅the UIViewcontroller docs


0
投票

使用以下代码为Swift 4版本

  self.navigationController?.popViewController(animated: true)
© www.soinside.com 2019 - 2024. All rights reserved.