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

时间:2012-04-23 04:53:29

标签: iphone objective-c cocoa-touch storyboard segue

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

我从

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

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

我的问题是:如何驳回performSegueWithIdentifier:sender:

5 个答案:

答案 0 :(得分:31)

你在viewController中有一个调用的导航栏:

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

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

[self.navigationController popViewControllerAnimated:YES];

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

presentViewController:animated:completion:

或:

pushViewController:animated:

酌情。

答案 1 :(得分:2)

你可以打电话

[self dismissViewControllerAnimated:YES completion:nil];

来自视图控制器,因为视图控制器被segue推送。

答案 2 :(得分:0)

[my_segue_view_controller dismissModalViewControllerAnimated: YES]

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

答案 3 :(得分:0)

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

你应该调用dismissViewControllerAnimated:completion:,它应该由呈现视图控制器调用,该视图控制器以前称为呈现的视图控制器使用presentViewController:animated:completion:。有关详细信息,请参阅the UIViewcontroller docs

答案 4 :(得分:0)

将以下代码用于 Swift 4 版本

  self.navigationController?.popViewController(animated: true)