Xamarin.ios 320&;单触式:TTTabStrip更改颜色不';行不通

Xamarin.ios 320&;单触式:TTTabStrip更改颜色不';行不通,xamarin.ios,three20,Xamarin.ios,Three20,我创建了一个从TTDefaultStyleSheet继承的新类 public class BlackStyleSheet : TTDefaultStyleSheet { public BlackStyleSheet() : base() { Console.WriteLine("BlackStyleSheet created."); } public override UIColor TabBarTintColor {

我创建了一个从TTDefaultStyleSheet继承的新类

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属性设置为新的自定义样式表时,应用程序崩溃。删除此属性设置后,应用程序运行正常,但选项卡条仍为灰色

在我读过的所有论坛中(似乎没有一个论坛是针对MonoTouch的),它们都表明创建自己的样式表,然后将其设置为全局样式表是一种方法。但这似乎不适合我的MonoTouch

有人有什么想法吗

谢谢,


John K.

我用Objective-C在XCode中尝试了您的示例,我可以确认这种方法确实有效。我自己也尝试了MonoTouch,看到了与您报告的相同的结果

我在过去的Three20绑定代码中发现了几个问题,这些问题似乎会导致这样的中止。您可以尝试修复现有的绑定代码,或者仅从Three20手动创建所需的绑定


我自己也遇到了这个问题,你解决过吗?我也看到了同样的崩溃,如果问题解决了,希望有人会在这里发帖。
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);