2013-11-02 15 views
1

我正在尝试制作我的第一个Xamarin iPhone应用程序。我现在有2个视图,我不知道如何连线,然后切换到到第二个。我应该在这个简单的iPhone应用程序中使用什么类型的ViewController

  1. AuthenticationViewController。这是一个简单的登录/创建帐户视图。
  2. TabbedViewController。几个子视图全部由选项卡控制器连接。例如。 listview,settings和about/info。

现在,我正在设置root = new AuthenticationViewController,这工作正常。只是不确定如何交换根,如果这是做事的正确方法。

或者应该全部用storyboard(我认为这是一种矫枉过正的情况)完成的?

回答

0

至少在objective-c中,您可以毫无问题地更改窗口的根视图控制器。唯一的缺点是你不能以这种方式应用转换。但这样做完全没问题。

1

用户应该始终明白他在哪里。为此,苹果公司建议使用删除旧内容并显示新内容的动画。一种可能性是UINavigationController。您可以创建一个空的UINavigationController,并以AuthenticationViewController作为根。当验证成功时,您可以将新的ViewController(即TabbedViewController)推入堆栈。如果您在TabbedViewController中注销,则可以通过PopViewController返回。

另一种选择是PresentModalViewController。在出现的控制器中,您定义了模式转换样式。这可以是任何东西,特别是对于这个FlipView-动画在我看来不是一个不好的选择。

所有这些都存在于iOS中的Xamarin中。

StoryBoard正在做同样的事情,但想象下面会发生什么。 (就像ViewController本身的InterfaceBuilder一样)。

+0

请您详细说明'PresentModalViewController'建议吗?像设置第一个根,然后将根交换到Tab,请好吗? –

+0

你保持root的状态,然后从你的'AuthenticationViewController'创建'TabbedViewController'(在Xamarin中用'TabbedViewController controller = new TabbedViewController(); controller.ModalTransitionStyle = UIModalTransitionStyle.FlipHorizo​​ntal; \t this.PresentViewController(controller,true ,null);' – Christian

相关问题