1

2 つの UITextField と 1 つのボタン (ログイン画面) を持つ iOS プロジェクト (ストーリーボードを使用しない) があります。ユーザーがボタンをクリックすると、サーバーに対して POST が起動され、ユーザーがデータベースに存在する場合は "1" が返されます。そして、別の画面に移動します。

問題は、その画面が黒く表示されることです。これは私のコードです:

requestFinished メソッドでは:

if([responseString2 isEqualToString:(@"1")]){
termsViewController *termscreen=[[termsViewController alloc]init];
    [[self navigationController] pushViewController:termscreen animated:YES];
}

デリゲート クラスで、メソッド initDiddidFinishLaunchingWithOptions で:

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

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[firstViewController alloc] initWithNibName:@"firstViewController" bundle:nil];
self.window.rootViewController = self.viewController;
//
UINavigationController *navcontroller= [[UINavigationController alloc]initWithRootViewController:self.viewController];
[[self window]setRootViewController:navcontroller];
[self.window makeKeyAndVisible];    
return YES;

}

別の画面に移動し、ナビゲーション バーが表示されますが、画面が真っ暗です。私はiPhoneの開発に慣れていないので、おそらく何かが足りないでしょう。

誰でも私を助けることができますか?

前もって感謝します。

4

3 に答える 3

1

nibファイルを割り当てていないと思います。これを試して:

termsViewController *termscreen=[[termsViewController alloc] initWithNibName:@"termsViewController" bundle:nil];

ビューコントローラー変数の名前は であると想定してtermsViewControllerいますが、これはニーズに合わせて変更できます。これが役立つことを願っています。幸せなコーディング:-)

于 2012-05-31T09:55:21.243 に答える
0

これは、2 番目のビュー コントローラーがナビゲーション コントローラー内にないために発生したと思います。nav コントローラーを作成するときは、オブジェクトの配列を追加する必要があります。これにより、何をプッシュするかがわかります。

コードスニペット:

UINavigationController *navContr = [[UINavigationController alloc]init];
FirstViewController *firstViewContr = [[FirstViewController alloc] init];
MapViewController *mapContr = [[MapViewController alloc] init];
NSArray *vcArray = [NSArray arrayWithObjects: mapContr, firstViewContr, nil];
[navContr setViewControllers:vcArray];
[self.window setRootViewController:navContr];
[self.window makeKeyAndVisible];
return YES;
于 2013-06-03T00:53:14.203 に答える
-2

実装(または削除)しなかった可能性があります

- (void)loadView
{
    // If you create your views manually, you MUST override this method and use it to create your views.
    // If you use Interface Builder to create your views, then you must NOT override this method.
}
于 2012-05-31T09:57:29.990 に答える