2016-06-01 24 views
1

我在Storyboard中的兩個ViewController之間有一個show segue。當呼叫performSegueWithIdentifier:,我得到一個NSInvalidArgumentExceptionStoryboard認爲Segue不存在。但它確實

Receiver (<[MY VIEWCONTROLLER SUBCLASS]: 0x7fc9e99f0640>) has no segue with identifier 'HomeToSettings'' 

的賽格瑞肯定存在並連接,並有在同一起源的ViewController是做工精細許多其他塞格斯。

在故事板的源代碼,SEGUE顯示出來,就像所有的工作的:

<connections> 
<outlet property="notificationsButton" destination="hG9-8E-sv6" id="mn0-1x-Qxj"/> 
<outlet property="settingsButton" destination="Fy0-au-d6J" id="r1c-fG-KOP"/> 
<outlet property="tableView" destination="9bJ-Cd-hc3" id="Wuy-hJ-QVU"/> 
<segue destination="ad8-yH-D5h" kind="show" identifier="HomeToCreateList" id="bsg-J2-Gp3"/> 
//More segues... 
<segue destination="pNX-Jw-wau" kind="show" identifier="HomeToNotifications" id="B2t-BE-YpW"/> 
<segue destination="xge-ah-WXM" kind="show" identifier="HomeToSettings" id="nTa-qO-SCb"/> 
</connections> 

我曾嘗試:

  • 重命名故事板
  • 刪除並重新創建segue
  • 重命名segue
  • 清理項目
  • 重新安裝應用程序
  • 重置內容和設置在模擬器上
  • 物理設備

Xcode和iOS的是最新的6月1日,2016年

如果它在某種程度上很重要,我通過附加到UIBarButtonItem的IBAction觸發segue。但是,從另一個UIBarButtonItem到另一個ViewController的另一個segue完美工作。

與我打電話SEGUE確切行是:

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

我真的失去了這裏。

+0

你檢查,如果SEGUE可在要測試的尺寸級別? – dasdom

+0

我該怎麼做? –

+0

進入界面構建器。在底部有一些說「任何:任何」的東西。更改爲您正在測試的大小類,並查看該segue是否仍然存在。順便說一句:Interface Builder不好,原因有幾個。你應該在代碼中創建UI。 – dasdom

回答

1

例如,您有show segue,名稱爲HomeToSettings,從VC-A to VC-B那麼您只能撥打[self performSegueWithIdentifier:@"HomeToSettings" sender:self];VC-A

如果您嘗試從其他控制器調用,則會發生錯誤。

我剛剛複製了你的陳述[self performSegueWithIdentifier:@"HomeToSettings" sender:self];,我在HomeToSettings字符串的H之前發現了一個奇怪的字符。

您可以通過鍵盤左側的方向鍵或後退空間檢查!

字看起來像

enter image description here

因此,來自世界各地,您可以設置這個標識符將其刪除。

從下面的語句複製標識符,並使用它在接口生成器中設置並使用below語句執行segue。

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

希望這將有助於:)

+0

你是完全正確的。在開始時有一個DLE,非打印ASCII字符。不知道它如何到達那裏,但你救了我! –

+0

是的人...... :) – Lion

相關問題