簡體   English   中英

在沒有導航控制器的情況下更改具有平滑推送過渡的視圖控制器

[英]Changing viewcontrollers with smooth push transition and without navigationcontroller

我正在嘗試從viewcontroller view1 更改為viewcontroller view2 平滑而漂亮的過渡,其中 view1 在一秒鍾內被 view2 推到左邊。 我已經簡單地說明了我想要的 iPhone 應用程序。

在此處輸入圖片說明 -->在此處輸入圖片說明 -->在此處輸入圖片說明 -->在此處輸入圖片說明

我正在使用故事板並為 iOS 6 及更高版本進行開發。 我沒有使用segues。 目前我正在使用此代碼在 Xcode 中沒有任何動畫的情況下從 view1 更改為 view2:

SecondViewController *viewTwo = [self.storyboard instantiateViewControllerWithIdentifier:@"View2"];
[self presentViewController:viewTwo animated:NO completion:nil];

我正在尋找可以替換我現有代碼的代碼。 通過推送轉換從 view1 更改為 view2 的代碼

注意:我沒有使用NavigationControllers 只是普通的ViewControllers 我更願意用代碼來做到這一點。

編輯:我知道如果我使用導航控制器,這將很容易做到,但問題是我已經完成了故事板的構建,而且我已經使用普通視圖控制器構建了所有內容。 這就產生了我的第二個問題:

有什么方法可以簡單地將我的UIViewControllers轉換為UINavigationControllers 不必刪除我的UIViewController並僅使用UINavController重新構建它?

答案:我通過在我的項目中實現導航控制器解決了我的問題。 我之前完全誤解了導航控制器的整個概念,但現在我已經弄清楚了。 所以我的問題解決了!

為 view2 設置動畫。 使用此代碼。

-(void)ViewNavigationOnLeftTabs
{
   self.view.frame=CGRectMake(420, 0,self.view.frame.size.width,self.view.frame.size.height);

    [UIView beginAnimations:@"Anim2" context:nil];
    [UIView setAnimationDuration:0.4];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
    [UIView setAnimationDelegate:self];
    self.view.frame=CGRectMake(0, 0,self.view.frame.size.width,self.view.frame.size.height);
    [UIView commitAnimations];
}
-(IBAction)nextView
{
    SecondViewController *sampleV=[[SecondViewController alloc] init];
    [self.view addSubview:sampleV.view];
    [self ViewNavigationOnLeftTabs];
}

在這里,我按照您的要求為 secondViewController 添加了過渡效果。 您需要在動畫期間處理背景視圖(view1)。

我在我的應用程序中使用了這段代碼,它對我來說很好用。

考慮使用容器視圖控制器。 這是一個教程: http : //www.cocoanetics.com/2012/04/ contains-viewcontrollers /

暫無
暫無

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

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