仅供参考,我正在使用 Objective-C 编程,但任何人都可以提供帮助。在过去的两个小时里,我一直坐在这里试图找出问题所在,并且我已经尽我所能来调试这个简单的小编码问题。查看下面的代码,我会解释。在应用程序中,它从 MainScreenViewController 开始。我的应用程序为用户提供了两种选择……选择“主”按钮或“工作”按钮(基本客户端-服务器模型)。根据用户的选择,应用程序应该加载另一个视图(MasterViewController 或 WorkerViewController)。现在,当我运行应用程序时,如果您遵循打印命令并假设选择“主”按钮,那么在我的程序中,它会打印出“masterButtonPressed - Stage 1”和“ 出错了吗?就像我说的,当按下“主”按钮时,视图永远不会改变。谢谢你的帮助!
MainScreenViewController.h
@interface MainScreenViewController : UIViewController {
}
-(IBAction)masterButtonPressed;
-(IBAction)workerButtonPressed;
@end
MainScreenViewController.m
@implementation MainScreenViewController
-(IBAction)masterButtonPressed {
NSLog(@"masterButtonPressed - Stage 1");
[ErwinAppDelegate changeToMaster];
NSLog(@"masterButtonPressed - Stage 2");
}
-(IBAction)workerButtonPressed {
NSLog(@"workerButtonPressed - Stage 1");
[ErwinAppDelegate changeToWorker];
NSLog(@"workerButtonPressed - Stage 2");
}
@end
ErwinAppDelegate.h
@class MainScreenViewController, MasterViewController, WorkerViewController;
@interface ErwinAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
MainScreenViewController *mainScreenViewController;
MasterViewController *masterViewController;
WorkerViewController *workerViewController;
}
@property(nonatomic, retain) IBOutlet UIWindow *window;
@property(nonatomic, retain) IBOutlet MainScreenViewController *mainScreenViewController;
@property(nonatomic, retain) IBOutlet MasterViewController *masterViewController;
@property(nonatomic, retain) IBOutlet WorkerViewController *workerViewController;
-(void)changeToMaster;
-(void)changeToWorker;
@end
ErwinAppDelegate.m
@implementation ErwinAppDelegate
@synthesize window, mainScreenViewController, masterViewController, workerViewController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after application launch
[window addSubview:mainScreenViewController.view];
[window addSubview:masterViewController.view];
[window addSubview:workerViewController.view];
[window makeKeyAndVisible];
// Bring first view up front
[window bringSubviewToFront:mainScreenViewController.view];
}
-(void)changeToMaster {
NSLog(@"changeToMaster - Stage 1");
[window bringSubviewToFront:masterViewController.view];
NSLog(@"changeToMaster - Stage 2");
}
-(void)changeToWorker {
NSLog(@"changeToWorker - Stage 1");
[window bringSubviewToFront:workerViewController.view];
NSLog(@"changeToWorker - Stage 2");
}
@end