我正在创建一个目前有2个主视图控制器的应用程序。该应用程序将加载到初始viewController中,然后单击其中的按钮应调出第二个viewController。这是我所拥有的:
AppDelegate.h
#import <UIKit/UIKit.h>
#import "ViewController1.h"
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController1 *mainViewCtr;
@property (strong, nonatomic) UINavigationController *navigationController;
@end
AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application {
_mainViewCtr = [[ViewController1 alloc] initWithNibName:@"mainViewCtr" bundle:nil];
_navigationController = [[UINavigationController alloc] initWithRootViewController:_mainViewCtr];
_window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_window.rootViewController = _navigationController;
_navigationController.delegate = self;
_navigationController.navigationBarHidden = YES;
[_window addSubview:_navigationController.view];
[self.window makeKeyAndVisible];
}
和
viewcontroller1
中的我的按钮方法:- (IBAction)SessionNickNameSubmit:(id)sender {
ViewController2 *secondViewCtrl = [[ViewController2 alloc] initWithNibName:@"secondViewCtrl" bundle:nil];
[self.navigationController pushViewController:secondViewCtrl animated:YES];
}
但是当我单击按钮时,视图不会改变。我尝试调试,但代码未命中,但没有任何反应。
我在某处缺少设置吗?
更新
我已经更新了所有viewController变量名称:
而不是
ViewController1/2
我正在使用mainViewCtrl
和secondViewCtrl
但仍然没有用:(
最佳答案
您输入错误:
它的
_window.rootViewController = _navigationController;
不
_window.rootViewController = _joinViewController;
NeverHopeless的建议也很明显。这可能是拼写错误,也是事实,您将第二个
viewcontroller
添加为ViewController2
而不使用适当的变量名。另一个建议是制作一个情节提要(如果您不使用它),并为过渡添加一个segue。只需将按钮处理分配给按钮即可。像这样:
-(IBAction)SessionNicknameSubmit:(id)sender
{
[self performSegueWithIdentifier:@"identifier" sender:self ];
}
Here很好地描述了它的工作方式和使用方法,以及一些有用的指针!