假设我的应用程序中有4个屏幕(iPhone视图控制器),我喜欢在它们之间导航。 例如:
> 1 ----> 2
> 2 ----> 3
> 3 ----> 2 (With new data)
> 2 ----> 4
> 4 ----> 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
。