我如何在使用MonoTouch导航后更新现有的DialogViewController RadioElement组
本文关键字:更新 DialogViewController RadioElement 导航 MonoTouch | 更新日期: 2023-09-27 18:07:30
我正在寻找关于如何实现这一点的想法:
我有一个带有标签栏控制器的应用程序,在这个应用程序中,每个"屏幕"都有导航控制器(它可以通过底部标签栏导航上的自己的标签来访问)。
每个屏幕都是一个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是-然而,自定义磁盘RadioElement在RadioGroup列表的末尾不更新。(标题不会更新,但它背后的实际数据会更新)。甚至在按下后退按钮离开RadioGroup并再次回到它之后。我可以让它更新的唯一方法是通过杀死应用程序,并重新启动-自定义磁盘对象从文件中再次读取,当DialogViewController被创建,然后显示良好。我尝试使用ViewWillAppear来创建我需要的整个表,但问题是,每次我在选项卡之间切换时,一切都被重置,我只需要自定义磁盘RadioElement或RadioGroup本身进行更新。
如何动态刷新这个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...
}
任何帮助将是非常非常感激!
你可能会发现我对这篇文章的回答很有帮助:Monotouch对话框-在修改行细节后重新加载数据列表,而不是在返回
时更新列表希望这对你有帮助Vassilis