0

アプリ デリゲートがあり、カスタム タブ バー コントローラーを追加して UITabbarController をオーバーライドする必要がありました。Window ユーザー インターフェイスを作成し、Window を Appdelegate の Window オブジェクトに参照します。File の所有者を UIApplication に変更し、NSObject を追加して ID クラスをデリゲートに変更し、UITabbarController を追加して ID クラスをカスタム タブバー コントローラーに変更しました。ここで、didFinishLaunchingWithOptions の Window オブジェクトが nil になるという非常に珍しいことを確認したため、画面に何も表示されません。また、私のカスタム タブバー コントローラー オブジェクトは nil です! 以下は、私の新しいウィンドウ構造と main.m です。誰が私がどこで間違っているのか教えてもらえますか? ありがとう。

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


Appdelegate.h

#import <UIKit/UIKit.h>
#import "CustomTabBarController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

@property (strong, nonatomic) IBOutlet UIWindow *window;

@property (strong, nonatomic) IBOutlet CustomTabBarController *tabBarController;

@end

Appdelegate.m

#import "AppDelegate.h"

@implementation AppDelegate

@synthesize window = _window;
@synthesize tabBarController = _tabBarController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if(_window == nil) // This is true for self.Window as well!
        NSLog(@"nil");
    if(_tabBarController.view == nil)
        NSLog(@"nil");
    [self.window addSubview:self.tabBarController.view];
    [self.window makeKeyAndVisible];
    return YES;
}  

ここに画像の説明を入力

4

1 に答える 1

2

私はこれを解決しました...2つのものが欠けていました。

  1. ファイルの所有者インスペクタ、リファレンス アウトレットは AppDelegate にデリゲートします。
  2. プロジェクトのターゲット設定で、メイン インターフェイスを新しく作成した Window に設定します。
于 2012-08-05T11:56:48.527 に答える