1

我有一个 iOS 项目(不使用 Storyboards),它有 2 个 UITextField 和 1 个按钮(一个登录屏幕)。当用户单击该按钮时,它会向服务器发起一个 POST,如果用户在数据库中,则返回“1”。然后,转到另一个屏幕。

问题是,屏幕显示为黑色。这是我的代码:

在 requestFinished 方法中:

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

在委托类中,在方法 initDddidFinishLaunchingWithOptions 中:

- (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

我认为这是因为您的第二个视图控制器不在导航控制器内。当你创建一个导航控制器时,你必须向它添加一个对象数组,所以它知道要推送什么。

代码片段:

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 回答