5

タイトルで述べたように、Navigation Controller既にTab Controller. だから、このページのようなスタッフをやろうとしています。とにかく、何かがおかしい。UINavigationControllerビューといくつかのライブラリがある場合でも、空白のページが表示されます。

ストラハトから始めましょう:

私のAppDelegateでは、次のようにタブ バー コントローラーを設定しています。

@interface MYAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UITabBarController *tabBarController;

@end

そして、ここに.mファイルがあります:

@implementation MYAppDelegate

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    application.applicationSupportsShakeToEdit = YES;
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UINavigationController *viewController1 = [[[MYMainViewController alloc] init] initWithNibName: @"MYMainViewController" bundle:nil];
    UIViewController *viewController2 = [[[MYPageViewController alloc] init] initWithNibName:@"MYPageViewController" bundle:nil];
    UIViewController *viewController3 = [[[MYSearchViewController alloc] init] initWithNibName:@"MYSearchViewController" bundle:nil];
    UIViewController *viewController4 = [[[MYPersonViewController alloc] init] initWithNibName:@"MYPersonViewController" bundle:nil];

    // Initialize tabBarController and add ViewControllers
    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController1, viewController2, 
        viewController3, viewController4, nil];

    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];

    return YES;
}

次に、次MYMainViewControllerの実装がありますUINavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"%@", [self navigationController]); // Logging null
}

私の .xib ファイルにはUINavigationControllerand があり、その中にビューがあります。とはいえ、アプリを操作すると、空白のページと無題のナビゲーション バーが表示されます。私は何を間違っていますか?

ビューのコンテンツが表示されたら、戻るボタンを使用して 2 つのビュー コントローラー間を移動したいと考えています。

どんな助けやアプローチも私にとって素晴らしいでしょう。

4

1 に答える 1

4

xib からナビゲーション コントローラーを削除して、ビュー コントローラーのみを持ち、ナビゲーション コントローラーをプログラムで初期化します。

UIViewController *tmpViewController1 = [[[YourViewController alloc] init] initWithNibName:@"YourViewController" bundle:nil];
 UINavigationController *viewController1 =  [[UINavigationController alloc] initWithRootViewController:tmpViewController1];
于 2012-12-25T12:12:20.897 に答える