-1

UITableView を作成するときに、タイトルやボタンを付けた後でも UINavigationBar が設定されていないことに気付きましたか?

今、UITableView の上にナビゲーション バーを配置する方法に夢中になっています。本当に無理そうです。ナビゲーション バーを含むサブビューを tableView に追加しようとしましたが、下にスクロールすると、ナビゲーション バーも下にスクロールし、そうすべきではないため、価値がないようです。

それを実装する方法についてのアイデアはありますか?

編集

さて、いつものように、File -> New -> File.. -> UITableView に進みました。それから私は少しのコードを設定し、私が書いたとき

self.navigationItem.title = @"MyTitle";
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

Simulatorでテストしようとしましたが、ナビゲーションバーは表示されませんでした。

私の初期コード:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = @"TabTitle";
        self.tabBarItem.image = [UIImage imageNamed:@"img.png"];
        self.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];

    }
    return self;
}

もう表示されない理由を説明できません。また、新しいプロジェクトを作成し、ナビゲーション バーが表示されたプロジェクトからクラスをインポートしようとしましたが、同じ結果になりました。

編集2*

アプリは tabBased アプリケーションです。以下は、tabBar の設定に使用される App デリゲートから取得したコードです。

 UIViewController *viewController1, *viewController4;
    UITableViewController *viewController2, *viewController3;
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        viewController1 = [[FirstViewController alloc] initWithNibName:@"First_iPhone" bundle:nil];
        viewController2 = [[Tips alloc] initWithNibName:@"Table" bundle:nil];
        viewController3 = [[Favorites alloc] initWithNibName:@"Test_iPhone" bundle:nil];
        viewController4 = [[SecondViewController alloc] initWithNibName:@"Second_iPhone" bundle:nil];
    }
4

1 に答える 1

1

を開始し、対応する としてUITabBarController4 を設定します。そのうちの 2 つが通常で 2 つなので、ナビゲーション バーはありません。ナビゲーションバーをフォームにしたい場所にviewControllerをロードする必要があります。正しい方法は次のようになります (vc3 が navbar が必要な場所であると仮定します):UIViewControllersUITabbarViewControllersUIViewControntrollerUITableViewControllerUINavigationController

UIViewController *viewController1, *viewController4;
UITableViewController *viewController2, viewController3;
UINavigationController *vc3NavController;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    viewController1 = [[FirstViewController alloc] initWithNibName:@"First_iPhone" bundle:nil];
    viewController2 = [[Tips alloc] initWithNibName:@"Table" bundle:nil];
    viewController3 = [[Favorites alloc] initWithNibName:@"Test_iPhone" bundle:nil];
    vc3NavController = [[UINavigationController alloc] initWithRootViewController:viewController3];        
    viewController4 = [[SecondViewController alloc] initWithNibName:@"Second_iPhone" bundle:nil];
}

次に、viewController3 の代わりに vc3NavController を対応するタブとしてロードします。つまり、次のとおりです。 UITabBarController -> UINavigationController -> YourViewController

ナビゲーション インターフェイスの作成も役立つかもしれません。

于 2012-05-24T06:58:26.277 に答える