4

アプリデリゲートでは、ユーザーの詳細が保存されている場合、ユーザーをビューコントローラーにプッシュしています

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  // cached user
    PFUser *currentUser = [PFUser currentUser];
    if (currentUser)
    {
        NSLog(@"current user signing and looking for VC %@", currentUser);
        // A user was cached, so skip straight to the main view

        UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
        TaskSelectionViewController*viewController = [[TaskSelectionViewController alloc] initWithUser:currentUser];
        [navigationController pushViewController:viewController animated:YES];

                NSLog(@"VC found");
            } else {
                NSLog(@"VC not found");
    }

TaskSelectionViewController.m

 -(id)initWithUser:(PFUser *)currentUser
{
NSLog(@"current user %@", currentUser);

NSLog(@"task Selection initwithuser");
return self;
 }

プッシュは機能していますが、上部にある NavigationController バーと黒い画面だけが表示されます。

何が欠けている ??

ご協力いただきありがとうございます。

4

2 に答える 2

24

instantiateViewControllerWithIdentifier:@"ID" を使用して OK を実行

UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
TaskSelectionViewController *controller = (TaskSelectionViewController*)[mainStoryboard instantiateViewControllerWithIdentifier: @"task"];
[navigationController pushViewController:controller animated:YES];
于 2013-01-05T05:59:27.507 に答える
0

TaskSelectionViewControllerでは、 ViewController を適切に初期化するために、または同様のもの-(id)initWithUser:(PFUser *)currentUserを呼び出す必要があります。[super init]これにより、少なくとも私にとっては同様の問題が解決されました。

ビュー コントローラーの初期化メソッドの参照実装については、Apple の例を参照してください。

于 2013-01-04T16:45:02.320 に答える