2016-04-25 78 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

我在這裏得到了同樣的問題,但我知道,我只是做了錯誤的控制+單擊,我從細胞拖,正確的必須是實現代碼如下

我希望這有助於有人