如何在使用MonoTouch导航后更新现有的DialogViewController RadioElement组?

时间:2013-04-05 14:24:00

标签: c# xamarin.ios monotouch.dialog

我正在寻找关于如何实现这一点的想法:

我有一个带有标签栏控制器的应用程序,每个“屏幕”都有一个导航控制器(可以通过底部标签栏导航栏上的自己的标签访问。

然后每个屏幕都是一个DialogViewController,我有各种元素和项目来输入和查看数据。在一个屏幕上,用户可以使用RadioGroup of RadioElements

选择项目
MyRadioElement _customRadioElement = new MyRadioElement (lines [0], lines [5], setRPMElementData); // set profile name and calculated IOPS for custom disk to this custom element
            // Disk Speed Root Element
            _diskspeed = new RootElement ("Disk Speed: ", new RadioGroup (0)){
                new Section ("Disk Speed:"){
                    new MyRadioElement("5400 RPM","5400",setRPMElementData),
                    new MyRadioElement("7200 RPM","7200",setRPMElementData),
                    new MyRadioElement("10K RPM","10K",setRPMElementData),
                    new MyRadioElement("15K RPM","15K",setRPMElementData),
                    new MyRadioElement("SSD","SSD",setRPMElementData),
                    _customRadioElement // this is the MyRadioElement defined above (our custom disk profile)
                }
            };

最后一个元素(_customRadioElement)是一个RadioElement,它是通过从保存的磁盘对象中加载一些信息而创建的。我读了文本文件的行,并用它来创建我的RadioElement。它最初是通过使用选项卡栏控制器上的另一个选项卡来访问另一个屏幕(也是一个DialogViewController),它允许用户指定他们的“自定义磁盘”并将其保存到磁盘/文件。

我的问题是当你在应用程序中,想要修改这个自定义磁盘时,你转到自定义磁盘编辑选项卡,进行更改,然后回到RadioGroup所在的主选项卡 - 但是自定义RadioGroup列表末尾的磁盘RadioElement不会更新。 (那么标题不会更新,但它背后的实际数据会更新)。即使按下后退按钮离开RadioGroup并再次返回。我可以让它更新的唯一方法是杀死应用程序,然后重新启动 - 在创建DialogViewController时再次从文件读入自定义磁盘对象然后显示正常。我尝试使用ViewWillAppear创建我需要的整个表,但问题是每次我在选项卡之间轻弹时都会重置所有内容,我只需要更新自定义磁盘RadioElement或RadioGroup本身。

如何在应用程序中轻松刷新此RadioGroup及其相关的RadioElements并在标签之间轻弹?

我已经尝试过使用ViewDidAppear,但这是在DialogViewController本身上,似乎不会影响RadioGroup。 E.g。

public override void ViewWillAppear (bool animated)
    {
        base.ViewWillAppear (animated);

        Console.WriteLine ("Forcing table reload...");
        LoadDiskInfo(); // Reload disk info from local app storage
        this.ReloadData(); // Force refresh of dialog viewcontroller table data - need to refresh the custom disk RadioElement somehow...
    }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可能会发现我对此帖的回答很有帮助: Monotouch Dialog - Reload data list after modifying row detail not updating list when returning

希望这有助于 瓦西利斯