2017-06-12 69 views
0

我在這裏查看了整個帖子中的這個問題,但無法找到我的錯誤。unwind segue返回到錯誤的來電者

我有vc1,當需要seques vcDetail。

我還有一個vc2,當需要的時候,它會變成vcDetail。

vc1和vc2組織在一個選項卡控制器下。 vcDetail不是。

vc1 to vcDetail segue在storyboard中建立並開始行動。

vc2 to vcDetail segue是在storyboard中建立起來的,並且在行動上開了火。

vcDetail解除按鈕「有線」退出。使用'selected'方法myUnwindAction。

myUnwindAction在vc1和vc2中均實現。相同。也在.h文件中定義。 (當我點擊vcDetail的展開順序時,vc1和vc2在故事板編輯器中點亮)。

問題:我的vcDetail永遠不會退回到vc2。它似乎只能放鬆到vc1。

場景:

- 呈現在標籤vcLogin。

--tab to vc1,segue to vcDetail。放鬆到vc1。好。

--tab to vc2,segue to vcDetail。放鬆到vc1 - 錯誤。需要返回給調用者,vc2。

或者:

- 在標籤vcLogin中呈現。

--tab to vc1,不要繼續。

--tab to vc2,segue to vcDetail。放鬆到vc1 - 錯誤。需要返回給調用者,vc2。

我被卡住了。我如何返回到正確的VC調用者?就好像不管來源如何,展開總是返回到vc1的「myUnwindAction」。就好像vc2不存在一樣。但放鬆的方法在那裏,故事板編輯器似乎都知道都參與myUnwindAction(因此提到的突出顯示)。

+0

我還沒有完整的答案;但它似乎是罪魁禍首是製表符控制器。當我從標籤控制器中刪除VC時,展開的行爲是正確的...我會繼續狩獵,因爲我喜歡我的UI用標籤組織... –

回答

0
You have to create different unwind segue for each Tab's View Controller 
create unwind method in VC2 like 
-(IBAction)unwindFromvcDetailToVC2:(UIStoryboardSegue*)sender; 

create unwind method in VC1 like 
-(IBAction)unwindFromvcDetailToVC1:(UIStoryboardSegue*)sender; 

set Both unwindSegue through Storyboard 

Depend on ur condition/requirement call 
[self performSegueWithIdentifier:@"unwindFromvcDetailToVC2" sender:nil]; 

or 

[self performSegueWithIdentifier:@"unwindFromvcDetailToVC1" sender:nil];