我正在寻找关于如何实现这一点的想法:
我有一个带有标签栏控制器的应用程序,其中每个“屏幕”都有导航控制器(可通过底部标签栏导航上的自己的标签访问。
然后每个屏幕都是一个 DialogViewController,我可以在其中输入和查看数据的各种元素和项目。在一个屏幕上,用户可以使用 RadioElements 的 RadioGroup 来选择项目
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 所在的主选项卡 - 但是自定义磁盘 RadioElement 位于RadioGroup 列表的末尾不会更新。(好吧,标题不会更新,但它背后的实际数据会更新)。即使在按下后退按钮退出 RadioGroup 并再次回到它之后。我可以让它更新的唯一方法是杀死应用程序,然后重新启动 - 创建 DialogViewController 时再次从文件中读取自定义磁盘对象,然后显示正常。我尝试使用 ViewWillAppear 创建我需要的整个表格,但问题是每次我在选项卡之间滑动时都会重置所有内容,
如何在仍在应用程序中并在选项卡之间轻弹的同时动态刷新此 RadioGroup 及其关联的 RadioElements?
我曾尝试使用 ViewDidAppear,但这是在 DialogViewController 本身上,并且似乎不会影响 RadioGroup。例如
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...
}
任何帮助将不胜感激!