0

静的コンテンツを含むストーリーボードとテーブルビューを使用しています。内部的には、UITableViewController暗黙的にのソースになるように見えUITableViewます。

静的コンテンツに影響を与えたい場合は、テーブルソースのメソッドをオーバーライドする必要があります。ObjectiveCでは私はただ置くことができます

-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return @"HELLO!";
    else {
        return [super tableView:tableView titleForHeaderInSection:section];
    }
}

私のコントローラーでは、メソッドがオーバーライドされます。しかし、MonoTouchではこれは機能しません。デリゲートまたはデータソースの新しいインスタンスを作成したくないことに注意してください。静的セルの場合、コントローラーソース/デリゲートです。ObjectiveCでは、これはコントローラーに対応するプロトコルを実装させることによって行われます。

これがこのトピックに関連して私が尋ねた質問ですが、今はソリューションをMonoTouchに変換するのに行き詰まっています:

tableView:titleForHeaderInSectionをオーバーライドする方法:静的UITableViewsのセクションヘッダーを調整するには?

4

2 に答える 2

5

XamarinのWebサイトの優れたチュートリアルで解決策を見つけました:http://docs.xamarin.com/ios/tutorials/Events%2c_Protocols_and_Delegates

" Export"属性はトリックを行います!

public partial class TestController : UITableViewController
    {
        public TestController (IntPtr handle) : base (handle)
        {

        }

        public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
        }

        [Export("tableView:titleForHeaderInSection:")]
        public string TitleForHeaderInSection(UITableView oTableView, int iSection)
        {
            return "TEST";
        }
    }
于 2012-05-22T16:48:48.713 に答える
-1

モノタッチでは、データソースデリゲートを作成する必要があります。

このブログ投稿のデモのように: http://sabonrai.wordpress.com/2009/08/28/monotouch-sample-code-uitableview/

        public override string TitleForHeader (UITableView tableView, int section)
        {
        //do your stuff 
        }   

ヘッダーセクションのタイトルをカスタマイズする場合は、TableViewDelegateのtitleForHeaderInSectionをオーバーライドするだけです。

于 2012-05-22T16:18:40.797 に答える