2

openGLでレンダリングされたグラフを表示するナビゲーションベースのアプリ、グラフに表示されるすべての要素の開示ボタンを一覧表示するテーブルビュー、および設定開示ボタンを作成しています。

ナビゲーションコントローラーはテーブルビューデリゲートおよびデータソースでもあり、テーブルビューはプログラムでビューに追加され、「デリゲートおよびデータソース」が「self」に設定されます。OpenGLベースのグラフビューはIBを介して追加されます。

私が抱えている問題は、didSelectRowAtIndexPathメソッド内でView Controller(設定またはグラフ要素のプロパティのいずれか)をプッシュしようとしていることです。メソッドが登録され、新しいビューがプッシュされますが、テーブルビューはそのまま残り、プッシュされたビューの一部を、別のナビゲーションコントローラーがあるかのように隠します。

テーブルビューのナビゲーションコントローラーを他のUINavigationControllersビューと同じに設定できないようです。

誰かが私がこれを修正する方法を知っていますか?

テーブルビューが追加されたナビゲーションコントローラーのinitWithCoderメソッドは、次のように表示されます。

elementList = [[UITableView alloc] initWithFrame:tableFrame style:UITableViewStyleGrouped];
elementList.dataSource = self;
elementList.delegate = self;
[self.view addSubview:elementList];

さらにソースファイルでは、ナビゲーションコントローラーがプッシュされるDidSelectRowAtIndexPathメソッドは次のように表示されます。

Settings* Controller = [[Settings alloc] init];
[self pushViewController:Controller animated:YES];
[Controller release];
4

1 に答える 1

0

IB に UITableView を追加し、IBOutlet を elementList に追加し、UIViewController を IB 経由でデリゲートおよびデータソースとして設定するだけで修正されました。

スタック オーバーフローは、問題を言葉で表して解決策を明らかにするのに非常に役立ちます。

于 2010-05-20T15:24:56.090 に答える