這個問題很長,所以請耐心等待。任何UIViewControllers之間的替代?
正如我們所知,有兩種顯示控制器的方法:推送或呈現。還有兩個複合控制器:tabbarcontroller &導航控制器。這些可以使複雜的視圖控制器樹。 現在我有一個像這樣的複雜的viewcontroller樹。
T:tabbarcontroller N:navigationcontroller 五:正常的ViewController ,P:推 S:本
所以PV2裝置推的ViewController,這是六種組合,但PN被forbiddened,則無法推送導航控制器。當我研究
T1 --------------------- N1 N2 N3 | | PV1 PV3 | PV2
現在當前視圖控制器是V2。我想跳到N3然後推V3。 我寫了這個代碼:
[self.navigationcontroller popToRootViewControllerAnimated:NO]; // No is important
tabbarcontroller.selectIndex = 2;
[N3 pushViewController:V3];
它的工作原理,但仍然很糟糕,太糟糕了。 1:N3必須知道v3,viewcontrollers之間的耦合是強大的。 2:它不能在複雜的情況下工作......也會導致動畫問題。
我的一位朋友告訴我他們製作了一個PageConductor,可以輕鬆地在任何視圖控制器之間切換。 真的讓我困惑......
1.我在N3.m中只輸入一個句子;我使用notifaition來解耦,所以V2不知道T,pageConductor是最好的解決方案,但我不知道如何實現它(就像你說的'[screen showUserProfile:userId]')。 <\n> 2.複雜情況下的例子是V3提供了一個tabbarcontroller T2,我想跳到V3。它會引發大量的動畫問題,引用:「至於在這種特殊情況下的動畫問題,在彈出T1堆棧之前嘗試切換到T3。「這不是一個普通的解決方案 – Spec
對不起,需要很長時間才能回答,我忙於工作1. N3是導航,你是否實現了自己的導航控制器?無論如何,這不是一個在線數量問題,而是應用程序語義問題。 。我不確定我是否按照你的說法:V3出現在標籤2上,你想切換到它?這裏有些複雜嗎?至於頁面導體 - 請參閱更新。 – hoha