创建模态切换,多场景和切换(Segue)

http://www.entlib.net/?p=2294

本文演示了Storyboard 多场景和切换(Segue)的应用。

在使用模板Single View Application创建iPhone App时,只包含一个视图控制器和一个视图,也就是只有一个场景。不过,可以很容易在Storyboard中添加场景。

本范例App的运行界面如下图所示:

1. 将View Controller 从对象库中拖曳到Storyboard 空白编辑区,就在Storyboard中添加一个视图控制器和相应的视图。

 

2. 对于每一对新添加的视图控制器和视图,一般而言,还需要提供支持的类文件(继承UIViewController)。

3. 需要将场景的视图控制器和新创建的类(继承UIViewController)进行关联,在Identity Inspector窗口完成操作。

4. 创建从初始场景到新创建的切换,按住Control 键,并从interface builder 编辑器中的切换按钮(本范例为-编辑按钮)拖曳到文档大纲中新场景的视图控制器图标上。

下面是切换(Segue)的属性设置,这里设置为Modal 模态:

本范例App的主要代码:

在新的场景实现文件中,viewDidLoad方法的代码如下。在目标视图控制器中,使用self.presentingViewController 属性获取源视图控制器。然后进一步获取成员变量emailLabel。

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.emailField.text = ((ModalViewController *)self.presentingViewController).emailLabel.text; }

目标视图控制器中的按钮操作代码,将emailField.text属性回写到源视图控制器的标签上:

- (IBAction)dismissEditor:(id)sender { ((ModalViewController *)self.presentingViewController).emailLabel.text = self.emailField.text;

[self dismissViewControllerAnimated:YES completion:nil]; }

下载本范例App项目完整源代码 – 使用微软网盘

posted @ 2014-06-06 09:56  萧萧  阅读(194)  评论(0)    收藏  举报