0

そのトピックについてかなりの数のスレッドがあることを知っており、すべてのオプションを試しました. しかし、何も機能しません。

それで、ここに私が持っているもの、loginviewcontrollerとtabbarviewcontrollerがあります。デバイスがすでに登録されている場合、loginview でない場合はタブバーが表示されます。ストーリーボードの初期ビュー コントローラーとして tabbarviewcontoller があります。これは、デバイスが登録されている場合に機能します。これは私が基本的に行うことです:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

//define viewcontroller
LoginViewController *loginviewcontroller = [[LoginViewController alloc]init];

//check if device id in coredata
NSString *deviceId = [self retrieveFromUserDefaults:cKey_DeviceId];
if(deviceId == nil){
    NSLog(@"device not registered");
    [self.window setRootViewController:loginviewcontroller];
    [self.window addSubview:loginviewcontroller.view];
}

//show them
[self.window makeKeyAndVisible];

return YES;

}

loginview viewdidload メソッドに NSlog 出力があるので、loginview がロードされていることがわかります。でも画面真っ暗!!!どうしてか分かりません。viewcontroller は viewdidload メソッドを実行しますが、画面出力はありません。

私は何を間違っていますか?

ありがとうドミニク

4

2 に答える 2

0

LoginViewControllerに.xibファイルがある場合は、間違ったinitメソッドを呼び出しています。initWithNibName:bundle:メソッドが必要です。

[self.window addSubview:loginviewcontroller.view];また、ルートビューコントローラを設定した後で呼び出す必要はありません。

また、deviceIdがnullでない場合は、空白の画面が表示されます。

そして、loginviewcontrollerがメモリリークしています。ルートビューコントローラに設定した後、リリースする必要があります。

于 2012-02-10T18:16:27.357 に答える
0

パスワードを使用するほとんどの場合、最初の (すでにログインしている) 画面をロードしてから、ログインが必要かどうかを確認するのが最善であることがわかりました。そうである場合は、すぐにログイン画面をモーダル ビューとして表示します。初期画面の viewDidLoad からログイン画面を起動します。

于 2012-02-10T20:13:55.033 に答える