-1

重複の可能性:
UIViewControllerからUITabBarControllerへの切り替え

UITabBarControllerの前に2秒間UIViewControllerを表示しようとしていますが、appdelegateから作成する必要があることはわかっています。最初にself.window.rootviewcontrollerをUIViewControllerに割り当て、2秒後にスケジュールされたタイマーを使用してself.window.rootviewcontrollerをUITabViewControllerに再割り当てしてみました。

問題は、テストするとビューコントローラーが表示されますが、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;  

}
4

2 に答える 2

0

メソッドはパラメーターを受け取らないため、changeViewメソッドのシグネチャにはコロンが含まれていません。セレクターをchangeViewコロンなしに変更します。

@selector(changeView)
于 2012-12-12T00:08:40.927 に答える
0

これを変える:

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

これに:

timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(changeView) userInfo:nil repeats:NO];
于 2012-12-12T00:09:43.077 に答える