2012-01-07 8 views
0

私はThree20フレームワークのTTTableViewクラスを使用して、URL付きHTMLを含むスタイル付きコンテンツを持つテーブルビューセルを作成しています。細胞は見た目がよく、ほとんどうまく機能します。 URLがピックアップされ、適切なデリゲートメソッドを起動します。ただし、URLはTTWebControllerで開いています.TTWebControllerには、ナビゲーションスタックのビューをポップするための戻る矢印がありません。TTNavigatorがナビゲーションスタックにプッシュされない

HERESに私のコード:

TTTableStyledTextItem *messageItem = [TTTableStyledTextItem itemWithText:[TTStyledText textFromXHTML:message lineBreaks:YES URLs:YES]]; 
messageItem.delegate = self; 

TTListDataSource *dataSource = [[TTListDataSource alloc] init]; 
[dataSource.items addObject:messageItem]; 

TTNavigator* navigator = [TTNavigator navigator]; 
navigator.delegate = self; 
navigator.window = [UIApplication sharedApplication].delegate.window; 

TTURLMap* map = navigator.URLMap; 
[map from:@"*" toViewController:[TTWebController class]]; 


self.tableView.dataSource = dataSource; 
self.tableView.delegate = self; 

URLが細胞内で強調表示され、1回の火災にこの方法をタップされています

- (BOOL)navigator: (TTBaseNavigator *)navigator shouldOpenURL:(NSURL *) URL { 
return YES; 

}

TTWebControllerが上にプッシュされていないようですナビゲーションスタックでは、戻る矢印なしでちょうど "表示"されます。何かご意見は? 周りを再生した後、私の解決策と

アップデートは、いくつかのより多くの私はこの問題は、私は定期的にiOSのUINavigationControllerを使用しながら、同時に新しいビューコントローラをプッシュするThree20 URLナビゲーションメソッドを使用しようとしていますということであると思います。 TTWebControllerが表示されているポイントは、Three20ナビゲーションスタック上の最初のビューコントローラであり、ルートビューコントローラであるため、以前のビューに戻るという概念はありません。ここで

は周りの私の仕事です:

- (BOOL)navigator: (TTBaseNavigator *)navigator shouldOpenURL:(NSURL *) URL { 
    // setup a webcontroller with the URL and push it 
    TTWebController *webController = [[TTWebController alloc] init]; 
    [webController openURL:URL]; 
    [self.navigationController pushViewController:webController animated:YES]; 
    [webController release]; 

    // dont navigate with TTBaseNavigator 
    // this does not use the regular UINavigation stack and 
    // ... the new view becomes rootview and has no back button 
    return NO; 
} 

、これはいくつかのいずれかをお役に立てば幸いです。

答えて

0

これは、tableViewを含むviewControllerの表示方法によって発生する可能性があります。そのviewControllerはUINavigationControllerにプッシュされるか、またはURLごとに呼び出されます(この場合、Three20は自動的にnavigationControllerを作成します)。

WebControllerを使用したnavigationControllerをプッシュできることを確認する必要があります。

+0

テーブルビューを含むビューコントローラは、通常のUINavigationControlerにプッシュされ、与えられたコード例では一番上のビューコントローラです。 WebControllerを呼び出すと、プッシュされるとも思いました。 WebControllerまたはTTNavigatorに、使用されているUINavigationControllrへの参照を明示的に与える必要がありますか? – lukestringer90

+0

いいえ、通常はそうではありませんが、試してみる価値があります。 'TTNavigator'で' setRootViewController: 'を使います。 – tonklon

+0

まだそこには喜びはありません。 – lukestringer90

関連する問題