2016-04-25 182 views
0

我有简单的应用程序。我的tableViews包含一些单词;我发布数据在后屏幕上,我想回到第一个tableView屏幕。我为此使用了一个segue。问题在于,每次发布后,单击按钮在帖子屏幕上打开新的tableView。我想回到原来的。iOS segue两次屏幕

表视图屏幕 - >发表屏幕 - >新建表视图屏幕

但我想

表Vievscreen < - >发表屏幕

+0

你在寻找'self.navigationController.popViewControllerAnimated(true)'? – JAL

+0

我觉得我的问题类似于那个:http://stackoverflow.com/questions/26337304/view-appearing-twice-when-performing-segue – JRdsdUY

+0

使用unwind segue - http://stackoverflow.com/questions/ 36824524 /编程式定义一个新的导航控制器命令堆栈/ 36829034#36829034 – Paulw11

回答

0

我们需要提供什么更多的信息。但是,这可能会让你以正确的方式开始。

如果您使用的是导航控制器,把这个在你的帖子视图代码:如果您不使用navigationController而是显示模态视图

navigationController!.popViewControllerAnimated(true) 

,然后使用您的发布视图代码如下:

dismissViewControllerAnimated(true, completion: nil) 
+0

我正在使用导航控制器,现在我试过了,它在发布数据后就像'Table View - > Table View'一样。如果我删除popViewController它就像是'Table View Screen - > Post Screen - > New Table View Screen' – JRdsdUY

+0

你有2个视图控制器,一个是tableView,另一个是一些post数据。在您的视图控制器中发布数据。请将您的代码复制/粘贴到解除视图控制器的位置。 – oyalhi

+0

当然,但我通过右击按钮并创建动作segue“show”来创建segue,因此在与segue相关的代码中没有任何内容。 – JRdsdUY

0

大多数segues创建视图控制器的新实例,并将其显示在现有视图控制器的顶部。

如果您正在使用推送功能将视图控制器添加到导航堆栈,您希望按照JAL评论中的描述进行弹出操作。

如果您SEGUE是模式的,你想要做一个dismissViewController:动画:

你也可以建立一个开卷SEGUE,虽然这可能是矫枉过正这个简单的例子。

1

我有同样的问题。现在解决了。请让我知道这可不可以帮你。

我已经从表视图小区联网另一种观点与名称DynamicSuperView

func tableView(_tableView: UITableView, didSelectRowAt indexPath: IndexPath) 
{ 
//Remove the below line from this function as it will perform segue. 
//performSegue(withIdentifier: "DynamicSegue", sender: self) 
} 


override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)  { 
// This will actually perform your segue 
var DestViewController = segue.destination as! DynamicSuperView 
let selectedRow = tableView.indexPathForSelectedRow?.row 
DestViewController.labelText = names[selectedRow!] 
} 

希望这有助于给某人一个SEGUE。

0

我在这里得到了同样的问题,但我知道,我只是做了错误的控制+单击,我从细胞拖,正确的必须是实现代码如下

我希望这有助于有人