0

重複の可能性:
アプリに追加すると UIAlertView がクラッシュする

私は Objective-C と Xcode が初めてです。私のアプリでは、最初の画面はView Controllerとその上のボタンです。そのボタンを押したときにタブバーを表示したいので、タブバーを2番目の画面にします。

これが私がやろうとしていることです:

appdelegate.h

@property (strong, nonatomic) FirstViewController *viewController1;

appdelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     self.viewController1 = [[FirstViewController alloc]
     initWithNibName:@"FirstViewController" bundle:nil];
     self.window.rootViewController = self.viewController1;
     [self.window makeKeyAndVisible];
     return YES; }

FirsViewController.mのボタンクリックのイベントがあります:

 -(IBAction) showMainView:(id) sender{  
     ViewController *mainViewController = [[ViewController alloc] initWithNibName:@"ViewController"
                                                                           bundle:nil];
     [self.view addSubview:mainViewController.view];
     mainViewController = [[ViewController alloc] initWithNibName:@"ViewController"                          
                                                           bundle:nil];
     [self.view addSubview:mainViewController.view];

ViewController はタブバー付きの xib です。

IB の 2 番目の xib ファイルでは、「ファイルの所有者」と AppDelegate - appdelegate クラスに UIApplication クラスを選択しました。そして、ファイルの所有者をアプリのデリゲートに参加させました。

アプリを実行して最初のビューでボタンをクリックすると、次のエラーでアプリがクラッシュします。 Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ViewController 0x744f0f0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key delegate.'

どうすればこの問題を克服できるか教えていただけますか? ボタンをクリックした後、tabbarController をrootViewController?に再割り当てする必要があります。ありがとう。

4

1 に答える 1

0

delegateエラーメッセージは次のようになります。クラスファイル(ViewController)に正しく接続されていないという名前のxibに何かを設定しました。xibに警告メッセージが表示されているかどうかを確認し、それを削除するか、その問題を修正してください。

于 2012-12-09T10:17:33.467 に答える