我有一个iOS项目(不使用Storyboard),它有2个UITextField和1个按钮(登录屏幕)。当用户单击该按钮时,它会向服务器启动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开发的新手,所以可能会遗漏一些东西。
任何人都可以帮助我吗?
提前致谢。
答案 0 :(得分:1)
我猜你没有用它来分配nib文件。试试这个:
termsViewController *termscreen=[[termsViewController alloc] initWithNibName:@"termsViewController" bundle:nil];
我假设您的视图控制器变量的名称为termsViewController
,您可以根据自己的需要进行更改。我希望这有帮助。快乐的编码: - )
答案 1 :(得分: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;
答案 2 :(得分:-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.
}