如何在Xamarin.iOS中的明暗模式之间切换?

时间:2020-06-11 17:02:37

标签: ios xamarin xamarin.ios ios13 ios-darkmode

我在网上找到的大多数信息都在处理Xamarin表单,是否可以仅使用Xamarin.iOS在明暗模式之间切换?

我已在我的一个控制器中将这段代码添加到ViewDidLoad方法中,以将其更改为暗模式,但如果有人可以分享一些想法,我不知道如何将其切换回亮模式完成吗?

public override void ViewDidLoad()
{
    UILabel fetchDataLabel;
    UIView loadingView;

    **this.OverrideUserInterfaceStyle = UIUserInterfaceStyle.Dark;**

    base.ViewDidLoad();

1 个答案:

答案 0 :(得分:0)

您可以覆盖TraitCollectionDidChange方法来检测OverrideUserInterfaceStyle的更改,然后在那里更新UI:

public partial class ViewController : UIViewController
{
    public ViewController (IntPtr handle) : base (handle)
    {
    }

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();
        // Perform any additional setup after loading the view, typically from a nib.
        this.OverrideUserInterfaceStyle = UIUserInterfaceStyle.Dark;


        UIButton myButton = new UIButton(UIButtonType.System);
        myButton.Frame = new CGRect(25, 25, 300, 150);
        myButton.SetTitle("Change Dark Mode", UIControlState.Normal);
        myButton.TouchUpInside += (sender, e) => {

            this.OverrideUserInterfaceStyle = UIUserInterfaceStyle.Light;

        };

        View.Add(myButton);
    }

    public override void TraitCollectionDidChange(UITraitCollection previousTraitCollection)
    {
        base.TraitCollectionDidChange(previousTraitCollection);

        var UserInterfaceStyle = TraitCollection.UserInterfaceStyle;

        //Update your UI here
    }
}