读书频道 > 移动开发 > ios开发 > iPhone UIKit详解
3.2.4 模态(modal)画面的显示方法
2012-09-15 16:34:29     我来说两句 
收藏    我要投稿   

本文所属图书 > iPhone UIKit详解

UIKit框架是iPhone应用程序开发中最基本的框架,也是用得最多、最重要的框架。本书就是一本UIKit开发大全,包括UIKit框架中各种类、控件使用技巧的相关介绍。本书每个章节都配有详细的应用实例,方便读者对UIKit...  立即去当当网订购

PC桌面软件中经常可以看到如“文件读取对话框”等模态对话框的画面类型。这些画面就显示在主画面的上方,当对话框中的操作结束,关闭对话框画面后将显示原来的画面,属于一种临时画面。iPhone应用程序中也能实现这种模态画面,例如iPhone通信录管理程序中,追加新的通信录时也使用了这种模态画面。

模态画面没有什么特别的地方,与其他画面一样也是由UIViewController的子类实现的画面,只是调用的方式不同而已。以下是模态画面显示的调用方式以及显示后关闭画面的实例代码。

     // ModalDialog为UIViewController的子类

     id dialog = [[[ModalDialog alloc] init] autorelease];

     [self presentModalViewController:dialog animated:YES];

     // 关 闭模态UIViewController

     [self dismissModalViewControllerAnimationed:YES]; 如上述代码所示,将UIViewController子类的实例作为presentModalViewController:

animated:方法 的第一个参数进行调用后,就能实现以模态方式显示画面。关闭时调用dismissModalViewControllerAnimationed:方法 。模态画面调用后的示意图如图3-10所示。


 

从iPhoneOS3.0开始,追加了设置模态画面显示/隐藏时动画效果的modalTranstionStyle属性,可设置三种不同的值,分别如下。

              ● UIModalTransitionStyleCoverVertical:画面从下向上徐徐弹出,关闭时向下隐

          藏(默认方式)。

              ● UIModalTransitionStyleFlipHorizontal:从前一个画面的后方,以水平旋转的方

          式显示后一画面。

              ● UIModalTransitionStyleCrossDissolve:前一画面逐渐消失的同时,后一画面逐渐显示。

以下是图3-10所示模态画面的代码,仅供参考。大家可以看到,其与普通的VIViewController子类没有任何区别。

               // 以模态形式显示的画面

               // 内容与普通画面一样

               @interface ModalDialog : UIViewController

               @end

               @implementation ModalDialog

     - (void)viewDidLoad {

       [super viewDidLoad];                                                        
       // 追加1个标签

       UILabel* label =  [[[UILabel alloc] initWithFrame:self.view.             

bounds] autorelease];

       label.backgroundColor = [UIColor blackColor];

       label.textColor = [UIColor whiteColor];

       label.textAlignment = UITextAlignmentCenter;

       label.text = @"您好。我是模态画面。";

       [self.view addSubview:label];

       // 追加关 闭按钮

       UIButton* goodbyeButton = [UIButton buttonWithType:UIButtonTypeR

oundedRect];

       [goodbyeButton setTitle:@"Good-bye" forState:UIControlStateNormal];

       [goodbyeButton sizeToFit];

       CGPoint newPoint = self.view.center;

       newPoint.y += 80;

       goodbyeButton.center = newPoint;

       [goodbyeButton addTarget:self

                          action:@selector(goodbyeDidPush)

               forControlEvents:UIControlEventTouchUpInside];

       [self.view addSubview:goodbyeButton];

     }

     - (void)goodbyeDidPush {

       // 关 闭模态对话框

       [self dismissModalViewControllerAnimated:YES];

     }

     @end  

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.2.3 跳转到任意画面
下一篇:3.3.1 UITabBar的参照
相关文章
图文推荐
1.3.5 有限的屏幕尺
1.2 必备条件
精通iOS开发 : 第7版
3.5 iFunBox
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站