我正在使用Xcode 4.3.2。以編程方式加載筆尖
我想以編程方式加載一個Nib而不是使用Storyboards。故事板看起來簡單很多,但不幸的是,它們與iOS 4不兼容。我正在構建一個需要向後兼容的應用程序。
這是我的問題:我試圖加載主視圖 - 一個綠色背景的簡單視圖。目前沒有默認視圖。
我的文件有:
AppDelegate.h/.M GreenViewController.h/.M SwitchViewController.h/.M
我想綠屏時,應用程序開始所以在加載AppDelegate.m我:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.switchViewController = [[SwitchViewController alloc] initWithNibName:@"GreenView" bundle:nil];
//UIView *switchView = self.switchViewController.view;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
在SwitchViewController.m我:
- (void)viewDidLoad
{
self.greenViewController = [[GreenViewController alloc] initWithNibName:@"GreenView" bundle:nil];
[self.view insertSubview:self.greenViewController.view atIndex:0];
[super viewDidLoad];
}
用簡單的initWithNibName填入默認代碼。
在GreenViewController.m我:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
這裏是一切的主要功能。當我運行應用程序,我立刻得到錯誤:
2012-10-09 12:34:35.586 MyViewSwitcher[5210:f803] -[AppDelegate setSwitchViewController:]: unrecognized selector sent to instance 0x6c6c310
2012-10-09 12:34:35.587 MyViewSwitcher[5210:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate setSwitchViewController:]: unrecognized selector sent to instance 0x6c6c310'
是否有人可以幫助我理解我的錯誤的原因是什麼?我確定了GreenView.xib的「Custom Class」是Identity Inspector中的「GreenViewController」。另外,我確定「查看」的引用出口是文件的所有者。我想在我的應用程序啓動時加載GreenView筆尖。最後,我會通過添加一個按鈕來切換視圖,但到目前爲止,我還沒有能夠加載主視圖。我不確定我的誤解。
非常感謝您的幫助!
你有正確合成你的'switchViewController'財產? –
Adil,那絕對是我的問題。我添加了「@synthesize switchViewController;」 &現在我的錯誤是:2012-10-09 13:48:27.970 MyViewSwitcher [5345:f803]應用程序窗口預計在應用程序啓動結束時有一個根視圖控制器 – Henry
您可以給我這個手嗎?我想我正走上正軌。 – Henry