簡體   English   中英

取消ViewController時更改UIViews的位置

[英]Changing position of UIViews when viewcontroller is dismissed

我有一個ViewController提出了另一個視圖控制器。 當第二個被關閉時,我在第一個控制器中有一個布爾值isFromSecondView設置為true。 因此,當我的第一個ViewController再次可見時,將調用viewWillAppear,我可以從那里在控制器內的某些視圖之間移動。 該方法可以正常工作,並且viewWillAppear方法可以確定它是否來自第二個視圖控制器。 但是,即使調用了它,我也無法在控制器內部移動視圖。 是我應該這樣做的方法,還是在第二個控制器被解雇時有另一種移動視圖的方法?

編輯,添加了視圖移動方法:

- (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){}];
}

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){}];
}

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

例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM