2012-08-30 52 views
0

我有一個ViewController,它提供了另一個視圖控制器。當第二個被解僱時,我在第一個控制器中有一個布爾值,isFromSecondView,設置爲true。所以當我的第一個ViewController再次可見時,viewWillAppear被調用,並且我可以從那裏移動控制器中的一些視圖。此方法工作正常,viewWillAppear方法可以決定它是否來自第二個視圖控制器。但是我不能移動控制器內部的視圖,即使它被調用。這種方法是我應該這樣做的方式,還是有另一種方式來移動第二個控制器被解僱時的意見?當viewcontroller被解僱時更改UIViews的位置

編輯,添加移動方法的觀點:

- (void)moveViews 
{ 
    NSLog(@"moving view"); 
    [UIView animateWithDuration:0.5 
        animations:^{ 
         self.view.center = CGPointMake(160, 250); 
         //self.tableView.center = CGPointMake(160, -100); 
         self.addView.center = CGPointMake(160, 240); 
        } 
        completion:^(BOOL finished){}]; 
} 
+0

你能張貼關於'UIView'的交換一些代碼? – Peres

+0

添加了從viewWillAppear上面調用的方法。 – user1596328

+0

'view'和'addView'' nil'? – Peres

回答

0

dismissViewControllerAnimated有你可以使用一個完成處理程序。一旦控制器解散,這將執行您的動畫代碼。當然,如果這是你使用它的地方,你需要修改它在另一個控制器中執行的處理。

[self dismissViewControllerAnimated:YES completion:^{ 
    NSLog(@"moving view"); 
    [UIView animateWithDuration:0.5 
                     animations:^{ 
                         self.view.center = CGPointMake(160, 250); 
                         //self.tableView.center = CGPointMake(160, -100); 
                         self.addView.center = CGPointMake(160, 240); 
                     } 
                     completion:^(BOOL finished){}]; 
} 
+0

我已經試過,代碼運行,但沒有任何反應。我認爲是因爲某些原因,這些意見是無效的?任何想法如何我可以解決這個問題? – user1596328

0

您可以在需要時使用viewWillLayoutSubviews(在您的控制器中)來佈置視圖。

例子:

- (void)viewWillLayoutSubviews 
{ 
    [super viewWillLayoutSubviews]; 
    // self.oneView.center = ... 
    // self.anotherView.center = ... 
} 
相關問題