2016-01-06 74 views
0

我在這裏有一個問題。當我在我的主視圖中點擊我的軌道按鈕時,如果顯示跟蹤信息,我會將按鈕帶到新視圖。我遇到的一個問題是,當它移動到新的視圖時,任何標籤都將從小尺寸開始,並通過動畫轉換爲正常尺寸。我不確定我是否正確地解釋了它,但是當我不確定它時,該視圖就是動畫。我將在下面附上代碼。iOS的presentViewController動畫關閉時

謝謝。

- (IBAction)ordertrack { 
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"track1"]; 
    [self presentViewController:vc animated:NO completion:NULL]; 
} 

UPDATE:

我還沒有得到任何解決方案的工作,我附上下面的GIF顯示,你會看到後退按鈕將調整問題。

https://imgflip.com/gif/wwqq7

編輯:

添加代碼Track1.m

// 
    // Track1.m 
    // uDropOff 3 
    // 
    // Created by Curtis Boylan on 06/01/2016. 
    // Copyright © 2016 Curtis Boylan. All rights reserved. 
    // 

    #import "Track1.h" 

    @interface Track1() 

    @end 

    @implementation Track1 

    - (void)viewDidLoad { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view. 
    } 

    - (void)didReceiveMemoryWarning { 
     [super didReceiveMemoryWarning]; 
     // Dispose of any resources that can be recreated. 
    } 

    /* 
    #pragma mark - Navigation 

    // In a storyboard-based application, you will often want to do a little preparation before navigation 
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     // Get the new view controller using [segue destinationViewController]. 
     // Pass the selected object to the new view controller. 
    } 
    */ 

    - (IBAction)back { 
     UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
     UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"main"]; 
     [self presentViewController:vc animated:YES completion:NULL]; 

    } 
    @end 
+0

哪裏是你的動畫代碼..它是在當前的視圖控制器..或在新的視圖控制器? –

+0

我沒有任何動畫代碼。 –

+0

我還沒有得到任何工作的解決方案,我已附加下面的gif顯示您將看到的問題後退按鈕將調整大小 https://imgflip.com/gif/wwqq7 –

回答

1

動畫可以在其中提出TRACK1視圖控制器來實現。例如在viewDidLoad/viewDidAppear中。

檢查[UIView animateWithDuration: ...

+0

我還沒有得到任何解決方案的工作,我已附加下面的gif來顯示您將看到的問題後退按鈕將調整大小。 https://imgflip.com/gif/wwqq7 –

+0

如果您顯示「track1」視圖控制器的代碼,則會更好。 – ChikabuZ

+0

我會在上面添加它。 –

2

@ChikabuZ講真話。 (投票)

animated參數presentViewController:animated:completion:控制新視圖控制器是否滑動到屏幕上或僅顯示。它一旦出現就不會影響新視圖控制器的功能。

如果新的「track1」視圖控制器在它的設置代碼中有動畫,這些仍然會發生。你需要建立你自己的機制來告訴它不要動畫。 (也許增加一個dontAnimateInitialDisplay屬性的track1 VC,寫你的代碼,所以如果dontAnimateInitialDisplay是真實的,動畫被跳過然後你會改變你上面的代碼是這樣的:

- (IBAction)ordertrack { 
    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    //Cast "vc" to the correct type so we have access to the 
    //dontAnimateInitialDisplay property 
    Track1VC *vc = (Track1VC *) 
     [sb instantiateViewControllerWithIdentifier:@"track1"]; 
    vc.dontAnimateInitialDisplay = TRUE; 
    [self presentViewController:vc animated:NO completion:NULL]; 
} 
+0

這聽起來像您的自動佈局約束正在更新,以反映其內容。你是在'viewWillAppear'還是'viewDidAppear'中改變任何視圖的內容? – chedabob

+0

我已經嘗試過鄧肯確切的代碼,我得到了多個錯誤。它正在加載的軌跡視圖中沒有代碼,只有幾個按鈕和標籤。 –

+0

鄧肯,有什麼我需要添加使代碼工作?我已經用我的代碼替換了,並且出現了多個錯誤,例如未聲明的標識符等。 –