0

まず、私は初心者なので、概念が間違っている可能性があります。

これは AppDelegate.m の私のコードです:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIViewController *viewController = [[UIViewController alloc] initWithNibName:@"FirstView" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController: viewController];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

アイデアは、UINavigationController をプログラムで追加することですが、ビューには .xib (「FirstView」パラメーター) を使用します。ビューをプログラムで作成することにも問題はありませんが、より単純なインターフェイスの場合は、IB を使用することもできると思います。

ただし、コードを実行すると、次のエラーが発生します。

2013-07-11 21:20:42.644 new-book-proto-01[64308:11303] *** Terminating app due
to uncaught exception 'NSInternalInconsistencyException', reason: 
'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "FirstView" nib
but the view outlet was not set.' 

私は何をすべきか?何か足りないものはありますか?

また、iOS 開発ではこのようなことは一般的ですか? それは悪い習慣ですか?これを行うより良い方法はありますか?

4

1 に答える 1

2

これは、次のように説明されている理由です。"

これは、コントローラー クラスに IBOutlet がないビュー (UI 要素) にアクセスまたは値を取得しようとしたか、ビューがまったくないことを意味します。

コントローラーで「表示」したいビュー (各 UI 要素はビュー) ごとに IBOutlets (プロパティ) を作成する必要があります。

于 2013-07-11T15:38:22.963 に答える