2014-12-06 71 views
-1

我有一個觀點的動畫問題。
首先,我在ViewDidLoad方法中做了一個動畫。它完美的作品。
然後在視圖內,我需要通過故事板ID使用下面的方法在ViewDidAppear調用動畫只有一次,即使重裝認爲

UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    myprofile *obj = [story instantiateViewControllerWithIdentifier:@"myprofile"]; 
    [self presentViewController:obj animated:YES completion:nil]; 

此視圖只是使用偏好和設置調出從故事板的另一視圖。設置完成後,我撥打

[self dismissViewControllerAnimated:YES completion:nil]; 

問題出現時,它被解僱。它可以回到之前的viewDidload,但動畫再次開始。

我的問題是,是否有反正我可以跳過,我在viewDidload叫我時,我辭退第二種觀點的動畫?

非常感謝

回答

1

您可以使用添加/後本地通知與YES this.Manage一個布爾變量一展身手動畫和NO的沒有動畫。 在調用動畫之前,在viewdidLoad中添加觀察者。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(SettingsDone) name:@"AnimationDone" object:nil]; 
if (goAnimate){ 
    UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
myprofile *obj = [story instantiateViewControllerWithIdentifier:@"myprofile"]; 
[self presentViewController:obj animated:YES completion:nil]; 
} 

-(void)SettingsDone{ goAnimate=NO; }

可以駁回彈出視圖,再發表本地通知父類。

[NSNotificationCenter defaultCenter]postNotificationName:@"AnimationDone" object:nil userInfo:nil]; 
[self dismissViewControllerAnimated:YES completion:nil]; 
1

也許你可以創建一個與像var playing : Bool = true一個屬性繼承的UIViewController之前更改辭退查看控制器類。

1

由於每次顯示前都要重新創建控制器,因此需要在某處存儲標誌。粗略地說,這個快速入侵將會在你的動畫上使用dispatch_once。但是您可能決定在父控制器中存儲標誌並從父控制器手動啓動動畫。真的有萬種方法來組織它。