2012-10-09 97 views
23

我試圖創建一個展開segue但沒有任何連接到它時,Ctrl +拖動。另外當我右鍵點擊退出圖標時,沒有可用的選項。不能連接故事板展開Segue

enter image description here

任何想法?

+1

在一個類似的問題,我張貼了這個答案: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new-退出圖標用於編輯故事板-USi/13437054#13437054 – Eric

回答

64

您需要在採用類型爲「UIStoryboardSegue *」的參數的視圖控制器上定義IBAction。

事情是這樣的:

@interface MyViewController 
... 
- (IBAction)unwindFromConfirmationForm:(UIStoryboardSegue *)segue { 
} 
... 
@end 

斯威夫特3版

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 

通過DoruChideanhttps://stackoverflow.com/a/46199117/250190

+0

啊!是的!謝謝,作品完美。這只是定義UIStoryboardSegue論點的問題。我把它設置爲'done:(id)sender'。 –

+0

我很高興能幫上忙。額外的嚴格性在於您的項目中的每一項行動都不會成爲您的選擇。 –

+0

有道理,謝謝你的信息。 –

18

提供的只是爲了澄清,在故事板後鏈接這件事,將上述方法添加到「視圖控制器」中你想放鬆一下,「你需要拖動一個按鈕或任何你想要放鬆的」視圖控制器中的繼續「從下往上它自己的小綠色的」退出「圖標在底部欄中。

應該有一個彈出窗口鏈接到「 - unwindFromConfirmationForm」。

一旦完成,放鬆繼續應該工作。


只是增加了特拉維斯良好的出發點:是完全清楚的:

假設你剛剛開始嘗試的故事板,所以你(一)提出了新的iOS7的Xcode項目和(b)做了一個故事使用一個導航控制器,然後(c)您製作了五個或六個視圖控制器。您的目標是能夠在使用展開的六個視圖控制器之間前後一致。 {通過控制 - 從一個按鈕拖動到「下一個」,這是微不足道的}

現在,在這一刻:所有六個視圖控制器,確實是「默認「class」ViewController「。請注意,Xcode(有點毫無意義)給你一個ViewController.h和ViewController.m文件。

再次,您的「簡單示例」視圖中的所有六個實際上只是在此時使用該文件ViewController.m。所以,很簡單,如果你補充一點:

-(IBAction)unwindUnused:(UIStoryboardSegue *)segue 
    { 
    NSLog(@"I did an unwind segway! Holy crap!"); 
    } 

那一個「存根」文件ViewController.m - 事實上,你的六個視每個人都將現在的「工作」,你就可以拖動到臭名昭着的小綠色「退出」按鈕。這很簡單。

現在只是TBC通常在一個真實的項目中,你永遠不會使用默認的「ViewController.m」文件。所以,去這裏:

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html

,並找到下精確「創建自定義視圖控制器」,這當然說明了出色的細節處理,如果你是新的。

但是,如果你只是在鬼混,想要讓綠色按鈕工作以解除展開,只需將代碼片段放在「ViewController.m」存根文件中,即可離開。 (記住,在「現實生活」中,你會在每個自定義屏幕上放置一個自定義的調用 - 可能會處理數據等等)。希望它有幫助!

Bonus factoid:請注意,無論如何,當您只是像這樣測試時,「Back」按鈕將自動出現在導航欄上! (即使您不添加展開存根方法)。

+1

正確。首先IMO的情況有點令人困惑,但似乎表現良好。 –

+0

非常有用的答案;我添加了一些更多的信息,可以幫助人們 – Fattie

0

您正在使用xcode6-beta版本嗎?在測試版1-3中,它是一個可以防止界面構建者檢測到展開狀態的錯誤。在xcode6-beta4中這個bug已經修復。

+0

Nah,這是幾年前。方法簽名導致了問題。 –

+0

哦,很抱歉沒有看到它是幾年前。無論如何,高興的問題得到解決 – Fred

1

Upvote for Jon Hess! 這是SWIFT 3相當於

@IBAction func unwindToViewController(segue: UIStoryboardSegue) { 

    //code 

} 
+0

謝謝,我更新了Jon的答案。 –