zoukankan      html  css  js  c++  java
  • iOS 5 编程iPad特有的弹出框(Popover)

    目前,弹出框(Popover)是iPad设备特有的功能和特性(iPhone 尚不支持)。用户只需触摸弹出框外面,就可关闭弹出框。

    在storyboard的interface builder中,拖曳编辑按钮(初始视图)到目标视图控制器(也就是弹出框窗口)图标上,在弹出切换类型菜单中,选择popover类型,如下图所示:

    切换(Segue)对应的Attributes Inspector窗口,可检查相关的属性:

    然后根据需要对弹出框的视图大小(Size Inspector窗口)和UI进行必要的编辑设计。

    范例App的相关代码:

    1. 首先初始视图控制器需要实现UIPopoverControllerDelegate协议,因为在用户关闭弹出框时,需要在方法popoverControllerDidDismissPopover 中获取弹出窗口的实例变量或属性值;

    @interface ViewController : UIViewController <UIPopoverControllerDelegate>

    2. prepareForSegue:sender 方法用来设置popoverController.delegate=self,表示由本实现文件来负责熟悉委托方法;

    另外,根据本视图控制器的属性值,初始化弹出框的emailField文本框;

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    UIStoryboardPopoverSegue *popoverSegue;
    popoverSegue=(UIStoryboardPopoverSegue *)segue;

    UIPopoverController *popoverController;
    popoverController=popoverSegue.popoverController;
    popoverController.delegate=self;

    if([segue.identifier isEqualToString:@"showEditor"]){
    EditorViewController *editorVC = segue.destinationViewController;
    editorVC.emailField.text = self.emailLabel.text;
    }
    }

    3. 在本视图控制器的实现文件中,实现popoverControllerDidDismissPopover 方法,负责处理弹出框关闭之后,获取弹出框中emailField 文本框的文本属性;

    - (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
    {
    NSString *newEmail = ((EditorViewController *) popoverController.contentViewController).emailField.text;
    self.emailLabel.text = newEmail;
    }

    范例iPad App的运行界面:

    App实现的功能比较简单,实现在弹出框中编辑Email地址,编辑完成之后,点击弹出框外部任意地方,弹出框消失,新的Email地址更新到初始视图中。

  • 相关阅读:
    BZOJ.3990.[SDOI2015]排序(DFS)
    BZOJ.1040.[ZJOI2008]骑士(树形DP)
    BZOJ.2246.[SDOI2011]迷宫探险(DP 记忆化搜索 概率)
    BZOJ.3209.花神的数论题(数位DP)
    UVA.1640.The Counting Problem / BZOJ.1833.[ZJOI2010]数字计数(数位DP)
    HDU.3652.B-number(数位DP)
    BZOJ.4514.[SDOI2016]数字配对(费用流SPFA 二分图)
    BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)
    BZOJ.1025.[SCOI2009]游戏(背包DP)
    BZOJ.3257.树的难题(树形DP)
  • 原文地址:https://www.cnblogs.com/tuncaysanli/p/2727828.html
Copyright © 2011-2022 走看看