2012-12-11 109 views
1

我試圖在UITabBarController之前顯示一個UIViewController 2秒,我知道我必須從我的appdelegate中創建它。我試圖通過首先將我的self.window.rootviewcontroller分配給我的UIViewController並在2秒後使用計時器將我的self.window.rootviewcontroller重新分配給我的UITabViewController。從UIViewController切換到UITabBarController

問題是,當我測試它時,我的viewcontroller顯示出來,但在2秒後應用程序崩潰。

這是我LaMetro_88AppDelegate.h

@interface LaMetro_88AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> 
{ 
    UIView *startupView; 
    NSTimer *timer; 

    UIViewController *LoadingViewController; 
    UITabBarController *tabBarController; 
} 

-(void)changeView; 
@property (nonatomic, retain) IBOutlet UIWindow *window; 

@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 
@property (nonatomic, retain) IBOutlet UIViewController *LoadingViewController; 

@end 

這是我LaMetro_88AppDelegate.m

@implementation LaMetro_88AppDelegate 

@synthesize window = _window; 
@synthesize tabBarController = _tabBarController; 
@synthesize LoadingViewController = _LoadingViewController; 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window.rootViewController = self.LoadingViewController; 

    timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changeView:) userInfo:nil repeats:NO]; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

-(void)changeView 
{ 

    self.window.rootViewController = self.tabBarController; 

} 
+0

你是如何添加新的視圖控制器?首先嚐試將它作爲子視圖添加到「window」中,然後_then_將「rootViewController」設置爲新的視圖控制器。但是,如果您只顯示了'UIViewController' 2秒,只需將其添加到'UITabBarController'的視圖並在兩秒後將其刪除。 – sooper

+0

我更新了這個問題,那就是我的代碼。我將它添加到我的MainViewController.xib中,我在其中放置了一個視圖控制器和一個視圖。 –

回答

0

您的應用程序崩潰,因爲你選擇了後一個冒號(:) changeView然而,該方法纔不是。只要刪除該冒號即可。此外,沒有必要有一個ivar的計時器,甚至分配計時器創建任何東西 - 該行可以只是︰

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changeView) userInfo:nil repeats:NO]; 
+0

我現在就試試 –

+0

是的,這有所作爲...我自我教我,所以我讓這個noob錯誤:)謝謝你的時間 –

相關問題