【发布时间】:2013-02-18 14:05:01
【问题描述】:
我的应用程序从 LoginViewController 开始。
登录视图有一个“注册”按钮,代码如下所示。
如果我点击注册,当应用程序启动时,什么也没有发生。但是如果我登录并注销,那么注册按钮可以正常工作。
发生这种情况应该是什么问题?
AppDelegate:
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
//Load View Controllers;
self.vcClubs = [[[ClubsViewController alloc] init] autorelease];
self.vcParties = [[[PartiesViewController alloc] init] autorelease];
self.vcEditProfile = [[[EditProfileViewController alloc] init] autorelease];
self.navClubs = [[[UINavigationController alloc] initWithRootViewController:self.vcClubs] autorelease];
self.navClubs.navigationBarHidden = YES;
self.navParties = [[[UINavigationController alloc] initWithRootViewController:self.vcParties] autorelease];
self.navParties.navigationBarHidden = YES;
// Load Login View
UIViewController *loginView = [[[LoginViewController alloc] init] autorelease];
self.window.rootViewController = loginView;
[self.window makeKeyAndVisible];
return YES;
}
...
- (void)login
{
self.vcMenu = [[[MenuViewController alloc] init] autorelease];
self.vcLocationMenu = [[[LocationMenuViewController alloc] init] autorelease];
self.mainController = [[[MainViewController alloc] init] autorelease];
self.mainController.leftViewController = self.vcMenu;
self.mainController.rightViewController = self.vcLocationMenu;
[self.mainController setMainViewController:self.navParties];
[self.mainController showMainViewControllerAnimated:YES];
self.window.rootViewController = self.mainController;
CATransition *transition = [[[CATransition alloc] init] autorelease];
transition.duration = 1;
transition.type = kCATransitionFade;
transition.subtype = kCATransitionFromBottom;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.window.layer addAnimation:transition forKey:@"login"];
}
...
登录控制器.php:
...
- (IBAction)onTapSignupButton:(id)sender
{
RegisterViewController *controller = [[[RegisterViewController alloc] init] autorelease];
[self.navigationController pushViewController:controller animated:YES];
NSLog(@"%@", self.navigationController);
}
...
在应用启动时返回 NSLOG:
2013-02-18 02:18:29.986 App[32652:c07] (null)
【问题讨论】:
-
当您点击注册时,上面的代码是否被执行(使用断点或NSLog来确定是否调用了代码)。代码本身很好。
-
@Joel 是的,它被执行了,但什么也没发生。
-
为
controller和self.navigationController设置一个NSLog()并检查是否没有一个为nil。 -
为了完整起见,请发布注销方法。
标签: objective-c xcode