我剛剛安裝了Xcode 4.5 for iOS6支持,我在故事板中看到一個名爲'Exit'的新圖標,列在我的視圖控制器和'First Responder'等下方。標記爲「退出」的圖標。Xcode 4.5故事板'退出'
我可以找到任何東西,也不知道如何使用它。
任何人都知道它,它是如何工作的,它的用途是什麼?
我剛剛安裝了Xcode 4.5 for iOS6支持,我在故事板中看到一個名爲'Exit'的新圖標,列在我的視圖控制器和'First Responder'等下方。標記爲「退出」的圖標。Xcode 4.5故事板'退出'
我可以找到任何東西,也不知道如何使用它。
任何人都知道它,它是如何工作的,它的用途是什麼?
這稱爲「展開塞格」。遺憾的是這個沒有文檔到目前爲止,除了上了XCode 4.5新功能列表簡單提一下,指出:
開卷塞格斯可以允許在故事板
可喜轉變爲場景 的現有實例是否有來自WWDC 2012解釋這些生物(除其他之外)的會話。
您可以使用開發人員帳戶詳細信息登錄Apple的iOS開發人員中心,然後轉至WWDC 2012 videos page並觀看「在應用程序中採用故事板」(它位於頂部第五位)關於unwind的討論始於時間37: 20。
更新: 這裏是從蘋果的文檔
是放鬆seques命名的退出佔位符對象標的一些更多的信息。默認情況下,當用戶關閉子場景時,該場景的視圖控制器 展開(或返回)到父場景 - 即 最初轉換到子場景的場景。但是,退出對象 可使視圖控制器放鬆到任意場景。
(從iOS6的文檔集>常規>入門)
And here is a nice example of how you can implement one
另一個更新:
好吧,那麼你如何使用它?嘗試控制 - 點擊從視圖控制器底部的退出對象,但它不會鏈接到任何東西。 – shim
你基本上必須爲你的展開順序定義一個方法,然後從一個元素連接到'exit'按鈕,選擇你想調用的方法。你可以在這裏找到一個例子(http://www.techotopia.com/index.php/Using_Xcode_Storyboarding_(iOS_6)#Unwinding_Storyboard_Segues)(我已經更新了我的答案以及包括這個例子) – Alladinian
-1:很多單詞,一點有用的信息。在閱讀完本書並在我自己的應用程序中使用它之後,我寫下了這個答案,希望它更有用:http://stackoverflow.com/a/25829835/901641 – ArtOfWarfare
另請參閱Cannot Connect Storyboard Unwind Segue其中闡明瞭使Exit圖標生效的要求。你必須有,在視圖控制器層次更高了,一個方法,那就是:
標記爲IBAction爲
需要指定一個參數是一個UIStoryboardSegue *
如果這兩個條件得到滿足,Exit圖標將會看到它,並允許您通過控制 - 從同一個視圖控制器中的按鈕拖動來連接它。
我現在也張貼在這裏是世界上最簡單的例子:
https://github.com/mattneub/Programming-iOS-Book-Examples/tree/master/ch19p638presentedViewControllerStoryboard(固定的2013 7月12日)
這表明現在是怎樣十分容易從呈現的視圖控制器原因請看和背部,而不是你以前爲了來回傳遞信息所做的所有工作(模板中的代碼和協議,現在可以刪除所有這些內容)。
只需在需求定義中添加一些細微的內容即可。這是基於Xcode 4.6的實驗。我發現它只是聲明(!)的方法,使Xcode能夠實現所需的控制拖動響應。這是我發現的所有要求:
IBAction
UIStoryboardSegue
*.M
實施部分])。.M
的接口部分。 (我沒有看到它在控制器層次結構中的位置的任何依賴關係,你可以添加任何舊文件,系統似乎彙集了所有具有UIStoryboardSegue
參數的方法,並將它們顯示在Exit圖標的菜單上。)注意,如果該方法在故事板編輯器中正在操作的場景的類中,則拖動菜單甚至會向您顯示您的方法,但它將顯示爲不帶冒號,並且在運行時似乎不會觸發任何操作。例子: -(IBAction)anymethodname:(UIStoryboardSegue *)myvariable;
想象一下,你有意見,你的故事板序列:
A -> ... -> Z
你想有觀點Z
一個按鈕,允許用戶將全力以赴回到A
的方式。
所以,你需要做的就是給你要一路背出來,在這種情況下,A
,其中被標記爲IBAction
,並採取了UIStoryboardSegue *
類型的單個參數的實例方法的看法。方法和變量的名稱無關緊要。你在實施過程中所做的事情也無關緊要。下面是一個例子:
的OBJ-C:
在A
的接口(未Z
'S):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue;
在A
的實施(未Z
'S):
- (IBAction)cancelSignup:(UIStoryboardSegue *)unwindSegue {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
Swift:
In A
的源(未Z
的):現在
@IBAction func cancelSignup(unwindSegue: UIStoryboardSegue) {
// Only "implemented" to satisfy a respondsToSelector: search.
// You can actually implement more stuff here, if you want, IE, if
// you need to reach out to a server to mention that this screen was
// returned to from a later screen.
}
,故事板,控制從一個元件拖動Z
內(即,取消按鈕)Z
的Exit
。它將掃描視圖層次結構中所有視圖中具有IBAction
的所有視圖,該視圖只接受一個UIStoryboardSegue *
作爲操作並列出供您選擇。
希望這比現有的答案更直接,更有幫助。我發現這個鏈接是特別有用的,所以如果有一個細節在閱讀我的答案後仍然很模糊,也許這可以幫助你(我試圖將這篇長篇文章中的所有有用信息壓縮成一個簡短的答案): http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html
在一個類似的問題,我張貼了這個答案: http://stackoverflow.com/questions/12569316/does-anyone-know-what-the-new-exit-icon-is-used-for-當編輯故事板 - usi/13437054#13437054 它有助於解釋如何使用退出(展開)功能 – Eric