我的等级如下所示:
NavigationControllerViewController - ViewDidDisappear正确触发DialogViewController - ViewDidDisappear在下一个DialogViewController - ViewDidDisappear从不文件。DialogViewController - VidDidDisappear永不触发。代码:
public partial class CustomDialogController : DialogViewController {
public CustomDialogController() : base (UITableViewStyle.Grouped, null, true) {
}
public override void ViewDidDisappear (bool animated)
{
base.ViewDidDisappear (animated);
Console.WriteLine("Gone baby 2");
// Never Fires
}
}
public partial class WorkoutsView : DialogViewController
{
public override void ViewDidDisappear (bool animated)
{
base.ViewDidDisappear (animated);
Console.WriteLine("Gone baby");
// Here is where you can add your custom code for when the DialogViewController disappears
}
public WorkoutsView (MetaFitness.BL.MetaFitnessManager manager) : base (UITableViewStyle.Grouped, null, true)
{
this.Title ="Title";
WorkoutViewModel WorkoutDetail = new WorkoutViewModel();
//var bc = new BindingContext (this, WorkoutDetail, "Details");
//detailView = new DialogViewController(bc.Root,true);
List<Workout> workouts = manager.GetWorkouts ();
var abc = new CustomDialogController();
abc.Root = new RootElement("WorkoutsView");
Root = abc.Root;
Section section = new Section ("Workouts");
foreach (var wo in workouts) {
string name = string.Empty;
CustomDialogController WorkoutController = new CustomDialogController();
WorkoutController.Root = new RootElement(wo.Name);
RootElement wSection = WorkoutController.Root;
var s2 = new Section();
var mvm2 = new MeasurementViewModel();
// the code for this is similar to CustomDialogController - never fires
s2.Add(new MeasurementViewController(mvm2).Root);
wSection.Add (s2);
section.Add(wSection);
}
Root.Add(section);
}
}发布于 2012-12-08 17:55:48
这不是如何使用UINavigationController和DialogViewController。记住UIViewController的基本概念:一个控制器处理大量内容(在iPhone上)。这意味着,您应该在UIViewController's堆栈上推送控制器。每个控制器都可以是DialogViewControllers。这么说,您已经可以看到,在MeasurementViewModel的一个部分中添加WorkoutsView的视图(根)是对上述概念的突破,因此,您违反了苹果的设计规则,结果是:您的View*()方法不会被调用。
相反:对元素添加一个回调,其中一个元素可以在导航控制器的堆栈上推送一个新的控制器。
您应该能够在MT.Dialog的Github页面:https://github.com/migueldeicaza/MonoTouch.Dialog或Xamarin博客:http://blog.xamarin.com/2012/02/10/easily-create-ios-user-interfaces-with-monotouch-dialog/上找到所有必要的文档
https://stackoverflow.com/questions/13779057
复制相似问题