2012-03-26 36 views
3

我正在使用XCode 4.2故事板。 本來我有一個Popover Segue錨定在嵌入導航控制器的UIViewController上的UIButton,一切都很好。Poppop Segue崩潰時調用編程

現在我需要在執行SEGUE前添加條件行爲,所以我做了以下內容:

  • 刪除了SEGUE
  • 從UIViewController的
  • 從按鈕
  • 創建一個IBAction爲創建一個新的SEGUE
  • 在IBAction爲

[self performSegueWithIdentifier:@"mySegue" sender:self]的應用得到救援人員到場呃準備ForSegue但它然後拋出一個SIGABRT並記錄以下內容

\*** Assertion failure in -[UIStoryboardPopoverSegue perform], /SourceCache/UIKit_Sim/UIKit-1912.3/UIStoryboardPopoverSegue.m:27 

任何想法?我還有其他一些這樣的工作,可以用push segues工作。這是我不斷聽到提及的行爲不當的情況嗎?

+0

你給SEGUE的IDENTIFER(名字)? – 2012-03-26 17:34:01

+0

是的。這是準備ForSegue成功:( – ruthie 2012-03-26 17:36:16

+0

你解決了嗎?你有沒有設置錨點? – Chris 2012-04-13 19:36:21

回答

10

也許這是一個有點晚:

錨定義要顯示和未連接到一個動作酥料餅的起點。它必須設置。

所以,當你想編程調用酥料餅SEGUE,你必須做的兩個步驟:

1.將Segue公司到ViewController您只需從您的視圖控制器拖動應該執行順着接下去目標ViewController並選擇Popover。

Connect Segue to ViewController

2.定義標識這是必要的調用從您的代碼執行SEGUE

3.連接錨你拖錨從中你想要的對象popover從開始。在下面的圖片中它是一個BarButtonItem。注意:這不會自動執行segue! (這你還可以執行一些操作方式連接到BarButtonItem)

Connect the Anchor

4.調用SEGUE從您的代碼

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