0

ここに画像の説明を入力私はこれをしばらく検索して実験してきましたが、何が間違っているのかわかりません。

メニュー付きのアプリを作りたいのですが、そのメニューからTableViewcontrollerタイトルバー付きの にアクセスできます。このタイトル バーを取得するには、 に「挿入」する必要があることがわかりましUITableViewControllerUINavigationController。これは私が立ち往生しているところです。

ユーザーがボタンをタップしたときにビューコントローラーを切り替える方法を知っているので、今のところアプリのメニューを気にしない/忘れてください。

私の AppDelegate.m には次のものがあります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    TableViewController *tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
    self.navController = [[UINavigationController alloc] initWithRootViewController:tableView];
    self.window.rootViewController = navController;
    [self.window makeKeyAndVisible];
    return YES;
}

私の AppDelegate.h ファイルに次のものがあります。

@interface AppDelegate : UIResponder <UIApplicationDelegate>{
    UINavigationController *navcontroller;
}

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

私は2つのクラッサーUITableViewControllerとNavigationViewを持っています。

では、UITableViewController次の配列を作成しましたtableRows

tableRows = [[NSArray arrayWithObjects:@"1", @"2", nil] init];

numberOfSectionsInTableView1 として設定され、numberOfRowsInSectionは として設定されますreturn tableRows.count;

タイトルを設定しようとしたことを除いて、NavigationView.m はそのままにしました。

で、NavigationView.xibと を接続しようとしUITableViewControllerましたUINavigationController

  • NSObject を追加し、そのクラスを AppDelegate に変更しました
  • View を a に置き換え、UIWindowwindow プロパティを my AppDelegate.hからそれに接続しました
  • を追加して、から にUINavigationController接続しました。navControllerAppDelegate.h
  • 最後に、クラスを RootView から に変更しまし UINavigationControllerUITableViewController

今私の問題は、IB の接続の有無にかかわらず、テーブルまたはタイトルバーで変更しようとしても、アプリを実行しても変更されないことです。

私が間違っていることを誰かが知っていますか?私は xcode 4.6 を使用しているため、チェックしたチュートリアルの多くは、古いバージョンの xcode で作成されているため、あまり役に立ちません。助けてください、よろしくお願いします!

4

3 に答える 3

0

また、無料の Sensible TableView フレームワークをチェックアウトすることも非常に役立つ場合があります。フレームワークは配列を受け取り、すべてのテーブル ビュー セルを自動的に生成し、ナビゲーション コントローラーを正しくセットアップするために必要なすべての詳細を管理します。お役に立てれば。

于 2013-03-31T14:38:59.743 に答える
0

のインスタンスを作成しているのではTableViewControllerなくUITableViewController、コードを実行していません。(アプリのデリゲートでこれに関するコンパイラ警告が必要です。これらの警告に注意してください)。同様に、NavigationView nib をどこにもロードしていません。テーブルをルート ビュー コントローラーとして使用してナビゲーション コントローラーを作成しています。NavigationView の目的が明確ではないため、続行する方法について推奨することはできません。ただし、テーブル ビューの場合は、アプリ デリゲートの次の行を変更します。

TableViewController *tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];

TableViewController *tableView = [[TableViewController alloc] init];

テーブル ビュー xib で、ファイルの所有者のクラスがクラスTableViewController(ではないUITableViewController) に設定されていることを確認します。テーブル ビューを右クリックし、「データ ソース」と「デリゲート」の横にある円をファイルの所有者にドラッグします。次に、ファイルの所有者を右クリックし、「ビュー」の横にある円がテーブル ビューに接続されていることを確認します。保存、消去、実行します。

于 2013-03-31T12:47:40.117 に答える