【发布时间】:2011-11-04 19:00:08
【问题描述】:
大家好,我是 iOS 开发新手,目前遇到一些问题,如果用户未登录,我正在尝试以模态方式显示登录表单。
我正在使用 NSUserDefaults 来存储一个 id,我只是检查它是否存在。如果没有,那么我希望 UIViewController 出现。
到目前为止,我的 UINavigationController 中有以下代码,它位于 UITabViewController 内,我试图让 UIViewController 出现在第一个 UINavigationController (被选择的那个)之上,此时动画正在发生但那里即使登录屏幕已经创建了所有相关的文本框等,也只是一个黑屏。如果我将此登录屏幕设置为要加载的初始视图,它会正常加载。
这是出现在 UINavigationController 的 First viewcontroller 中的代码。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs stringForKey:@"id"]){
LoginViewController *loginController = [[LoginViewController alloc] init];
[self presentModalViewController:loginController animated:YES];
} else {
[self loadCoffeeUserOrders:[prefs stringForKey:@"id"]];
}
模式视图正在加载,但此时它只是显示为黑色,我尝试创建一个新的登录屏幕,但同样的事情发生了:除了黑屏之外什么都没有。
希望那里有足够的信息让某人了解可能发生的事情,我对 iOS 开发非常陌生,所以如果我犯了一些错误,很高兴知道我哪里出错了。
谢谢
【问题讨论】:
-
确保您的 LoginViewController 的视图已连接到 XIB 文件中,在 LoginViewController 的 viewDidLoad 中设置断点并确保它正在执行您的预期。
-
您的登录视图是在 loadView 中实现的,还是为此设置了 nib?
-
我刚刚在我的 viewDidLoad 中添加了一个 NSLog,它正在按预期将其注销。 @FirozeLafeer 我在 Xcode 中使用情节提要模式,所以我在情节提要中已经有了视图。
标签: iphone objective-c ios ios5 viewcontroller