在MonoTouch中切换视图控制器

时间:2013-04-16 15:20:13

标签: ios xamarin.ios navigation

假设我的应用程序中有4个屏幕(iPhone视图控制器),我喜欢在它们之间导航。 例如:

> 1 ----> 2
> 2 ----> 3
> 3 ----> 2 (With new data)
> 2 ----> 4
> 4 ----> 1

这当然只是一个例子,实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

Udi I,

实现此类导航的正确方法是UINavigationController。来自Apple文档:

  

UINavigationController类实现了一个专门的视图控制器,用于管理分层内容的导航。此导航界面可以有效地呈现您的数据,并使用户更容易浏览该内容。此类通常按原样使用,但可以在iOS 6及更高版本中进行子类化。

以下API允许您在堆栈中导航

– pushViewController:animated:
– popViewControllerAnimated:
– popToRootViewControllerAnimated:
– popToViewController:animated:

如果您需要在控制器之间传递数据,只需按以下方式注入:

// within the third controller

UIViewController* secondController = // new controller
secondController.dataToInject = // ...
[self.navigationController pushViewController:secondController animated:YES];

其中dataToInject可以在SecondController中定义为

@property (nonatomic, retain) id dataToInject;

希望有所帮助。

P.S。代码是用objective-c编写的,但稍加修改对MonoTouch也有效。 例如,使用this代替self