-1

良い一日。ナビゲーション コントローラーを使用して新しいタブをアプリに追加しようとしています。新しいタブ付きアプリ (xcode 4.2) を作成し、appdelegate でこれを記述します

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    UIViewController *viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil] autorelease];
    UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
    NavController *navController = [[[NavController alloc] initWithNibName:@"NavController" bundle:nil] autorelease]; //my controller
    self.tabBarController = [[[UITabBarController alloc] init] autorelease];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, navController, nil];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

NavController.h ファイル

@interface NavController : UINavigationController

@end

ここでプロジェクトの構造 プロジェクトの構成

プロジェクトを実行すると、空のタブ 結果 が表示されますが、xib ファイルにラベルとボタンを追加します 結果として欲しいもの

4

2 に答える 2

0

次のUIViewControllerでナビゲーションコントローラーを初期化します。

    RootViewController *rootViewController = [[[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil] autorelease];
    NavController *navController = [[[NavController alloc] initWithRootViewController: rootViewController] autorelease]; 

これは役立つかもしれません。

于 2012-05-04T10:01:57.273 に答える
0

この機能に関する私のAPPコードを共有しています。これで問題が簡単に解決できることを願っています

このコードを AppDelegate.m に追加します

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];

    UINavigationController *localNavigationController;

    tabBarController = [[UITabBarController alloc] init];

    NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:3];

    viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
    localNavigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
    [localControllersArray addObject:localNavigationController];

    AlaramClock *aAlaramClock = [[[AlaramClock alloc] initWithNibName:@"AlaramClock" bundle:nil] autorelease];
    localNavigationController = [[UINavigationController alloc] initWithRootViewController:aAlaramClock];
    [localControllersArray addObject:localNavigationController];


    CurrentTime *aCurrentTime = [[[CurrentTime alloc] initWithNibName:@"CurrentTime" bundle:nil] autorelease];
    localNavigationController = [[UINavigationController alloc] initWithRootViewController:aCurrentTime];
    [localControllersArray addObject:localNavigationController];

    Settings *aSettings = [[[Settings alloc] initWithNibName:@"Settings" bundle:nil] autorelease];
    localNavigationController = [[UINavigationController alloc] initWithRootViewController:aSettings];
    [localControllersArray addObject:localNavigationController];



    tabBarController.viewControllers = localControllersArray;

    [localControllersArray release];


    // Override point for customization after app launch    
    [window addSubview:tabBarController.view];
    [window makeKeyAndVisible];

    return YES;
}

次に、Uはこの外観を取得します

ここに画像の説明を入力

この後、すべてのViewController.mで

これを追加

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) 
    {
        // Custom initialization
        self.title=@"Calculate Time";
        self.tabBarItem.title = @"Calculate Time";
        self.tabBarItem.image=[UIImage imageNamed:@"time_calculate.png"];
    }

    return self;

}
于 2012-05-04T10:05:47.587 に答える