2014-09-20 70 views
4

所以我有一個屏幕可以檢查某些屬性,並且在定義的情況下會立即在viewDidLoad中模態地加載另一個視圖,而不使用動畫在當前加載的視圖上不要顯示下面的視圖)。在iOS8之前完成這個操作之後,原始視圖會暫停其加載(不會繼續執行viewWillAppear,viewDidLayoutSubviews等),直到覆蓋控制器被解除爲止。我發現這種行爲適合我的需求,因爲原始視圖中元素的任何動畫都可以完成。但是,在iOS 8中,我得到了完全不同的事件鏈。首先,由於某種原因,viewDidLayoutSubviews被調用兩次(什麼與怎麼了?),但更重要的觀點是不喜歡另一個控制器被彈出所有隨時隨地viewDidAppear之前,抱怨unbalanced calls to begin/end appearance transitions。不僅如此,但底層viewController繼續與它的加載(viewWillAppearviewDidLayoutSubviews等),即使它沒有被顯示這會導致這些事件的所有方法火。我很感激蘋果是否已經更新了這種方式的意圖是要實現的,所以如果新元是一個完全不同的過程,我願意採用,但是,因爲它是我無法得到適當的工作。iOS 8 viewDidLoad模態演示文稿導致多個演示文稿

我會很感激如何得到這個模式的看法,而不會導致基礎視圖繼續它的加載插話任何幫助。

謝謝,
邁克

更新:將帶來一些代碼下面是主viewController呈現模態VC,如果需要的viewDidLoad

-(void) viewDidLoad{ 

    if(hasNotSeenTutorial){ 
     TutVC* vc = [[TutVC alloc] initWithNibName:@"tutNib" bundle:nil] 

     vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
     [self.navigationController presentViewController:vc animated:NO completion:^{ 
      NSLog(@"Has Completed Presentation"); 
     }]; 
    } 
} 

這是問題所在。在viewDidLoad這裏調用演示文稿,導致演示VC繼續。在iOS 8之前,如果VC尚未呈現,則會暫停,直到模態VC被解散爲止,然後將像往常一樣完成。根據我原來的文章,iOS 8並非如此。

+0

你可以添加一些代碼來使這個故事更易於理解嗎? – Sjors 2014-09-20 12:25:34

+0

@Sjors新增了一些代碼,但我擔心我的解釋讓它變得更加複雜! – Mackey18 2014-09-20 14:06:46

+0

您是否嘗試將此塊從'viewDidLoad'移動到'viewWillAppear'? – sha 2014-09-20 14:50:10

回答

1

蘋果已經取得了它的規則與iOS 8.嚴格的給你舉個例子,我會通過我開車這點 - 在我的軟件,我用彈出一些從導航堆棧,只是後視圖控制器,推一個新的,但流行是從未在ios7中看到,只有推轉換似乎發生(當邏輯上,流行應該已經看到,然後推)。而在ios 8中,這件事發生了變化。現在只有在看到並注意到流行音樂後才能看到推送。這相當糟糕地打破了用戶體驗。

我已經注意到這個嚴格的其他領域,但這些都不是UI/UX相關的,所以我不會去到它的細節現在。

至於你的情況去了,以我的經驗,我可以告訴你,你已經在一個錯誤的方式在做的東西。隨着蘋果嚴格執行,您的實施似乎打破了。 我認爲唯一的解決方案是在viewdidAppear中移動每個支票。

如果你想繼續你正在做的ios7的方式較早您可以使用此檢查:

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) 
{ 
    // Code for ios 8 implementation 
} 
else 
{ 
    // Code for ios 7 implementation 
} 

雖然我會建議你避免因爲笏ü的目標是完全可以實現的。 此外,您正在做的事情很容易導致導航堆棧中的不一致,導致應用程序崩潰。

+0

不確定爲什麼這個被拒絕。如果蘋果改變了內部規則,我們需要了解它。我現在正在處理一個問題(http://stackoverflow.com/questions/25987244/autolayout-problems-with-ios8-with-code-that-works-fine-on-ios7),我想知道如果我可能會陷入類似的網絡。 – Gallymon 2014-09-26 20:01:59

+0

哇!投下來!至少我的嘗試值得回覆投票。非常不負責任。 – 2014-09-27 11:54:14