如何以编程方式从MonoTouch的一个视图控制器加载其他的viewController(How t

2019-07-29 08:43发布

我正在使用MonoTouch的故事板,并有已被指定为初始VC一个视图控制器。 我有希望从第一个VC的viewDidLoad方法编程方式显示第二VC。 Objective-C的步骤是,像这样

  1. 通过实例化第二VC Storyboard.InstantiateViewController("SecondVC")
  2. 设置它的ModalTransitionalStyle
  3. 其委托设置为自拍像secondVC.delegate = self;
  4. 使用this.PresentViewController(secondVC, true, nil)

如何做到在MonoTouch的C#代码?

我实例使用VC Storyboard.Ins..方法没有委托或委托属性来设置。 虽然我的代码编译,我没有看到第二个观点。 我只看到第一视图

任何帮助高度赞赏

谢谢

Answer 1:

你应该可以,如果你调用它的延迟做到这一点。 我用了一个Threading.Timer调用PresentViewController负载之后的第二次。 至于代表,一个UIViewController没有这个属性。 你将不得不强制转换为适用于正在加载的控制器控制器类型。 然后你可以设置委托。 你可能会想设置WeakDelegate而不是委派的,如果你想使用这个(个体经营)。

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    Timer tm = new Timer (new TimerCallback ( (state)=> {
        this.InvokeOnMainThread (new NSAction (()=> {
            UIStoryboard board = UIStoryboard.FromName ("MainStoryboard", null);
            UIViewController ctrl = (UIViewController)board.InstantiateViewController ("Number2VC");
            ctrl.ModalTransitionStyle = UIModalTransitionStyle.CrossDissolve;
            this.PresentViewController (ctrl, true, null);
        }));
    }), null, 1000, Timeout.Infinite);
}


文章来源: How to programmatically load another viewController from a ViewController in MonoTouch
标签: xamarin.ios