2012-04-27 6 views
0

TTDefaultStyleSheetから継承する新しいクラスを作成しました。Three20&MonoTouch:TTTabStripの色が変わらない

public class BlackStyleSheet : TTDefaultStyleSheet 
{ 
    public BlackStyleSheet() : base() 
    { 
     Console.WriteLine("BlackStyleSheet created."); 
    } 

    public override UIColor TabBarTintColor 
    { 
     get 
     { 
     Console.WriteLine("BlackStyleSheet.TabBarTintColor returned."); 
      return UIColor.Black; 
     } 
    } 

    [Export ("tabTintColor")] 
    public override UIColor TabTintColor 
    { 
     get 
     { 
      Console.WriteLine("BlackStyleSheet.TabTintColor returned."); 
      return UIColor.Black; 
     } 
    } 
} 

私はFinishedLaunchingメソッドでこのカスタムスタイルシートをデフォルトとして設定します。その後

public override void FinishedLaunching (UIApplication application) 
{ 
    Three20.TTStyleSheet.GlobalStyleSheet = new BlackStyleSheet(); 
    Three20.TTDefaultStyleSheet.GlobalStyleSheet = new BlackStyleSheet(); 
    Console.WriteLine("Three20 style sheet set."); 
} 

、私は自分のカスタムのUIViewControllerののviewDidLoad()メソッド内の実際のTTTabStripとTTTabItem要素を作成します。 TTTabItemオブジェクトは、メソッドレベルではなくクラスレベルで宣言されています。 TTDefaultStyleSheet.GlobalStyleSheetプロパティが新しいカスタムスタイルシートに設定されている

tab1 = new TTTabItem("1"); 
tab2 = new TTTabItem("2"); 
tab3 = new TTTabItem("3"); 
TabStrip = new TTTabStrip(); 
TabStrip.Frame = new RectangleF(0,0,View.Frame.Width, 44); 
TabStrip.TabItems = NSArray.FromNSObjects(tab1,tab2,tab3); 
TabStrip.SelectedTabIndex = 0; 
View.AddSubview(TabStrip); 

、アプリがクラッシュします。このプロパティ設定を削除すると、アプリケーションは完全に実行されますが、タブストリップはグレーのままです。

私が読んだ(誰もMonoTouch特有のようではない)すべてのフォーラムで、彼らは自分のスタイルシートを作成した後、それをグローバルスタイルシートに設定することを示しています。しかし、これはMonoTouchで私にとってはうまくいかないようです。

誰にもアイデアはありますか?

は、

ジョンK.

+0

あなたはそれを解決しなかった私は、この問題に自分自身を走りましたか? – Eric

答えて

1

をありがとう、私はObjective-CのでXcodeであなたの例を試してみましたが、私はこのこのアプローチは仕事をしていることを確認することができます。私はMonoTouchを使って自分自身を試し、同じ結果を報告しました。

私は過去にこのようなアボートの原因と思われるThree20バインディングコードにいくつかの問題があることを発見しました。既存のバインディングコードを修正したり、必要なバインディングのみを手動で作成することができます。

http://docs.xamarin.com/ios/advanced_topics/binding_objective-c_types

+0

私も同じクラッシュを見て、もし解決されれば誰かがここに投稿することを願っています。 – Eric

関連する問題