0

誰かが私に次のことを手伝ってくれたら、それは素晴らしいことです!

これが私がやろうとしていることです。私のアプリは基本的にrssリーダーです。rssエントリのトピックがテーブルビューに表示されます。エントリをタップすると、ストーリー全体を表示するWebビューが開きます。このWebビューに、上下の矢印が付いたツールバーを追加しました。これにより、ユーザーはWebビューを離れたり、テーブル内の別のエントリをタップしたりすることなく、次/前のストーリーにジャンプできます。私の問題は、これをどのようにアーカイブするかがわからないことです。多分これは私のアプリの構造に関連しています。私の推測では、ボタンをタップすると、選択した行を何らかの方法でインクリメントする必要があります。

私が言ったように、おそらくコードは少し複雑なので、私はここにプロジェクト全体を投稿しました:http ://www.schimanke.com/flo.zip誰かが見て、何をすべきか教えてくれるといいですね行う。

4

1 に答える 1

0

必要なのは、モデルで現在どの行が選択されているかを知ることです。Webview からモデルへの参照があるので、それは簡単です。

int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];

その後必要なのは、次の (または前の) エントリを表示することだけです。コードに基づいて、次のようになります。

- (void) showNextPrevEntry:(int)increment usingTheOldController:(BlogEntryController *)controller {

    int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];
    if (row+increment<[mainModel.blogEntries count] && row+increment>=0) {
        mainModel.selectedBlogEntry = [ mainModel.blogEntries objectAtIndex:row+increment];
        controller.mainModel = mainModel;
        [controller viewDidLoad];
    }

}

viewDidLoad を呼び出すのは健全ではないと思います。現在ロードされているビューを更新するためだけに別のメソッドが必要な場合があり、それを viewDidLoad から呼び出します。また、ツールバーからのボタンの押下を処理するために通知を使用している理由もわかりませんが、機能します。:)

于 2009-09-27T21:29:28.300 に答える