2015-03-02 53 views
0

我是相當新的iOS開發。我有多個viewController是爲我的應用程序,例如 -如何在Cocoa Touch中的任何兩個ViewController之間進行轉換?

  • 登錄屏幕
  • 主/我的個人資料屏幕
  • 的領袖板/榜上屏幕
  • 等。

每個屏幕都有自己的viewController

用動畫在任意兩個任意viewController之間過渡的最佳方式是什麼?

我目前的做法是 -

  1. 請參考每個viewControllerAppDelegate.m
  2. 不斷改變窗口的根控制器需要

這是既麻煩又似乎非常低效,加我不太清楚如何在這裏結合動畫過渡。

我看到UINavigationController的一些例子,但它看起來像一個「堆棧」的視圖,你可以進入然後退出。我不打算在這裏保留歷史記錄,只是從任何視圖切換到另一個視圖。

任何好的方法來實現這一目標?

謝謝!

+0

看看的UITabBarController,除了登錄可能 – Christian 2015-03-02 07:17:57

+0

是的,但隨後的標籤欄在底部顯示的是有用的,正確的? – user2490003 2015-03-02 07:32:49

+0

是的,這是賴特 – Christian 2015-03-02 07:35:59

回答

0

基本上,你可以通過使用做到這一點:

  1. 蘋果容器(UINavigationController的,的UITabBarController,UISplitController)
  2. 遏制API
  3. 使用 「普通」 視圖控制器和模態呈現

Containment API可能是您正在尋找的東西,您創建了一個負責管理其子視圖控件的呈現的UIViewController的LER。這裏是Apple Documentation,裏面有很多例子。

2

試試這個代碼。

AppDelegate.h

#import <UIKit/UIKit.h> 
#import "LoginViewController.h" 

@interface AppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) UIWindow *window; 
@property (strong,nonatomic) UINavigationController *navigationController; 
@property (strong,nonatomic) LoginViewController *loginVC; 

@end 

AppDelegate.m

#import "AppDelegate.h" 
#import "LoginViewController.h" 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 

    self.loginVC = [[LoginViewController alloc]initWithNibName:nil bundle:nil]; 
    self.loginVC.title = @"Login Page"; 

    self.navigationController = [[UINavigationController alloc]initWithRootViewController:self.loginVC]; 

    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
} 

LoginViewController.h

#import <UIKit/UIKit.h> 
#import "MyProfileViewController.h" 

@interface LoginViewController : UIViewController 

@property (strong,nonatomic)MyProfileViewController *myProfileVC; 

@end 

在LoginViewController登錄按鈕操作。M檔

- (IBAction)pushMyProfileView:(id)sender 
{ 
    self.myProfileVC = [[MyProfileViewController alloc]initWithNibName:nil bundle:nil]; 
    [self.navigationController pushViewController:self.myProfileVC animated:YES]; 
} 
+0

所以這對於兩個特定視圖之間的轉換很有用,但是如果我有8個視圖控制器,例如每個viewController需要存儲對其他7的引用。 – user2490003 2015-03-02 08:34:24

0

作爲一個初學者,我相信你的最簡單的方法是使用一個Storyboard和創建視圖控制器之間的SEGUE。

內,您的視圖控制器,你應該重寫prepareForSegue:方法,將數據傳遞給segue.destinationViewController

相關問題