假设我的应用中有 4 个屏幕(iPhone 视图控制器),我喜欢在它们之间导航。例如:
> 1 ----> 2
> 2 ----> 3
> 3 ----> 2 (With new data)
> 2 ----> 4
> 4 ----> 1
这当然只是一个例子,实现这一目标的正确方法是什么?
假设我的应用中有 4 个屏幕(iPhone 视图控制器),我喜欢在它们之间导航。例如:
> 1 ----> 2
> 2 ----> 3
> 3 ----> 2 (With new data)
> 2 ----> 4
> 4 ----> 1
这当然只是一个例子,实现这一目标的正确方法是什么?
乌迪我,
实现此类导航的正确方法是通过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;
希望有帮助。
PS代码是用objective-c 编写的,但稍作修改也适用于MonoTouch。例如,使用this
代替。self