模态窗口

什么是模态窗口?本文带你了解模态窗口的本质 做 Windows 桌面应用开发的小伙伴们对“模态窗口”(Modal Dialog)一定不陌生。如果你希望在模态窗口之上做更多的事情,或者自己实现一套模态窗口类似的机制,那么你可能需要了解模态窗口的本质。 本文不会太深,只是从模态窗口一词出发,抵达大家都熟知的一些知识为止。 本文内容开发中的模态窗口模态窗口的三个特点实现模态窗口API 调用禁用主窗口阻塞代码等待操作完成进行 UI 强提醒 开发中... 阅读详情

一. 简介

在iOS中并没有专门的模态窗口类,模态窗口(modal)只是视图控制器显示的一种方式,模态窗口方便快捷,它不依赖于控制器容器(如UITabBarController和UINavigationController),通常用于显示独立的内容,在模态窗口显示的时候,它暂时中断程序正常的执行流程,用户无法再与上一个场景交互,只能对当前此窗口进行操作,除非他们先关闭这个场景,而普通窗口则可以进行任意切换

推荐一篇可以加深对模态理解的博文: http://blog.youkuaiyun.com/ssirreplaceable/article/details/52335465

1. 使用场景

模态视图(modal)最常用的场景是临时弹出的窗口,如登陆注册、设置、购物车、点赞等展示小功能的窗口
使用场景可分为下面几类:

a. 收集用户输入信息

b. 临时呈现一些内容

c. 临时改变工作模式

d. 为不同的设备方向实现可替代的界面

e. 使用指定类型的过渡动画来显示一个新的视图结构

2. 基本概念

模态:一种用来承载特定内容、功能或体验的模式,有其自身的优缺点。它可以帮助用户完成某些任务,或在不受干扰的情况下获取信息,但会暂时性的强迫用户停止与应用其他部分的互动

模态视图:也称为模态窗口,由于在iOS中并没有专门的模态窗口类,模态窗口(modal)在iOS中只是视图控制器显示的一种方式,通过presentViewController方法弹出的视图我们都称为模态视图

二. 知识点

  1. 模态视图没有父控制器,即当视图通过parentViewController获取父视图时,返回nil

  2. 当我们在viewController A中模态显示viewController B的时候,A就充当presentingViewController(弹出模态窗口的控制器),而B就是presentedViewController(被弹出控制器)

  3. 当连续获取presentingViewController,可以得到根视图控制器

// 当连续两次展现模态视图时,可以通过下面代码获取根视图控制器,self指向最后展现的模态窗口
UIViewController *vc = self.presentingViewController.presentingViewController;

三. 展现和关闭模态视图方法

present方法和dismiss方法一般一起使用,才能实现两个视图之间的来回切换
completion是一个block类型的处理器,用于在调用present方法或dismiss方法之后执行回调

// 展示模态视图
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);
// 关闭模态视图
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion NS_AVAILABLE_IOS(5_0);

四. 模态窗口的切换风格

必须在presenting控制器里设置
(1). Modal Presentation Styles(弹出风格)

typedef NS_ENUM(NSInteger, UIModalPresentationStyle) {
        UIModalPresentationFullScreen = 0,
        UIModalPresentationPageSheet NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationFormSheet NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationCurrentContext NS_ENUM_AVAILABLE_IOS(3_2),
        UIModalPresentationCustom NS_ENUM_AVAILABLE_IOS(7_0),
        UIModalPresentationOverFullScreen NS_ENUM_AVAILABLE_IOS(8_0),
        UIModalPresentationOverCurrentContext NS_ENUM_AVAILABLE_IOS(8_0),
        UIModalPresentationPopover NS_ENUM_AVAILABLE_IOS(8_0),
        UIModalPresentationNone NS_ENUM_AVAILABLE_IOS(7_0) = -1,         
};

(2). Modal Transition Style(弹出时的动画风格)

typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {
    UIModalTransitionStyleCoverVertical = 0,
    UIModalTransitionStyleFlipHorizontal,
    UIModalTransitionStyleCrossDissolve,
    UIModalTransitionStylePartialCurl NS_ENUM_AVAILABLE_IOS(3_2),
};

五. 窗口之间的传值

  1. 接收方必须要有一个接收数据的属性
  2. 可以通过presentingViewController获取弹出模态视图的那个控制器,而通过presentedViewController可获取被弹出的控制器视图
  3. 从前往后传值,要先调用presentViewController:animated:completion:方法才能进行传值,不能在调用之前传值,否者无法传值
  4. 从后往前传值,要先传值再调用dismissViewControllerAnimated:completion:方法,不能在调用之后传值,否者无法传值
  5. 官方文档建议这两者之间通过delegate实现交互

补充:之后会补充关于界面传值的文章

四. 具体使用

(一). storyboard中的使用

在storyboard里使用模态视图,即切换模式为modal,只能通过代码返回

1. 在视图控制器1选中“按钮”按住Ctrl键,拖线到视图控制器2,并选中modal切换模式

这里写图片描述


这里写图片描述

2. 设置视图控制器2的所属类

这里写图片描述

3. 编写返回按钮的响应方法,即通过代码关闭模态视图

#import "TwoViewController.h"

@interface TwoViewController ()

@end

@implementation TwoViewController

- (IBAction)gotoOne:(id)sender {

  [self dismissViewControllerAnimated: YES completion:nil];

}

@end

(二). 纯代码实现

1. ViewController类

----------  ViewController.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (nonatomic,strong) NSString *oneData;

@end

---------- ViewController.m文件

#import "ViewController.h"
#import "TwoViewController.h"

@interface ViewController ()

@property (nonatomic,strong) UIButton *gotoTwoBtn;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // 设置背景颜色
  self.view.backgroundColor = [UIColor blueColor];

  // 创建模态切换按钮
  _gotoTwoBtn = [[UIButton alloc] init];
  _gotoTwoBtn.frame = CGRectMake(100, 150, 80, 60);
  [_gotoTwoBtn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateNormal];
  [_gotoTwoBtn addTarget:self action:@selector(gotoTwo) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:_gotoTwoBtn];

}

- (void)gotoTwo{

  TwoViewController *twoVC = [[TwoViewController alloc] init];

  [self presentViewController:twoVC animated:YES completion:nil];

  // 要先执行presentViewController:animated:completion:才能执行下面语句
  [self.presentedViewController setValue:@"界面1到界面2" forKey:@"twoData"];

}

- (void)viewDidAppear:(BOOL)animated {

  NSLog(@"%@ -- %@",self,_oneData);

}

@end

2. TwoViewController类

---------- TwoViewController.h文件

#import <UIKit/UIKit.h>

@interface TwoViewController : UIViewController

@property (nonatomic,strong) NSString *twoData;

@end

---------- TwoViewController.m文件

#import "TwoViewController.h"
#import "TreeViewController.h"

@interface TwoViewController ()

@property (nonatomic,strong) UIButton *backOneBtn;

@property (nonatomic,strong) UIButton *gotoTreeBtn;

@end

@implementation TwoViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  // 设置视图背景颜色
  self.view.backgroundColor = [UIColor greenColor];

  // 创建模态关闭按钮
  _backOneBtn = [[UIButton alloc] init];
  _backOneBtn.frame = CGRectMake(100, 150, 80, 60);
  [_backOneBtn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateNormal];
  [_backOneBtn addTarget:self action:@selector(gotoOne) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:_backOneBtn];

  // 创建模态切换按钮
  _gotoTreeBtn = [[UIButton alloc] init];
  _gotoTreeBtn.frame = CGRectMake(100, 250, 80, 60);
  [_gotoTreeBtn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateNormal];
  [_gotoTreeBtn addTarget:self action:@selector(gotoTree) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:_gotoTreeBtn];

}

- (void)gotoOne{
 [self.presentingViewController setValue:@"界面2到界面1" forKey:@"oneData"];

  [self dismissViewControllerAnimated:YES completion:nil];

}

- (void)gotoTree{

  TreeViewController *treeVC = [[TreeViewController alloc] init];

  [self presentViewController:treeVC animated:YES completion:nil];

  [self.presentedViewController setValue:@"界面2到界面3" forKey:@"treeData"];
}

- (void)viewWillAppear:(BOOL)animated {

  NSLog(@"%@ -- %@",self,_twoData);

}

@end

3. TreeViewController类

---------- TreeViewController.h文件

#import <UIKit/UIKit.h>

@interface TreeViewController : UIViewController

@property (nonatomic,strong) NSString *treeData;

@end

---------- TreeViewController.m文件

#import "TreeViewController.h"

@interface TreeViewController ()

@property (nonatomic,strong) UIButton *backTwoBtn;

@property (nonatomic,strong) UIButton *backOneBtn;

@end

@implementation TreeViewController

- (void)viewDidLoad {
    [super viewDidLoad];

  // 设置视图背景颜色
  self.view.backgroundColor = [UIColor redColor];

  // 创建模态关闭按钮
  _backTwoBtn = [[UIButton alloc] init];
  _backTwoBtn.frame = CGRectMake(100, 150, 80, 60);
  [_backTwoBtn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateNormal];
  [_backTwoBtn addTarget:self action:@selector(gotoTwo) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:_backTwoBtn];

  // 创建模态切换按钮
  _backOneBtn = [[UIButton alloc] init];
  _backOneBtn.frame = CGRectMake(100, 250, 80, 60);
  [_backOneBtn setBackgroundImage:[UIImage imageNamed:@"beijing"] forState:UIControlStateNormal];
  [_backOneBtn addTarget:self action:@selector(gotoOne) forControlEvents:UIControlEventTouchUpInside];
  [self.view addSubview:_backOneBtn];

}

- (void)gotoTwo{

  [self.presentingViewController setValue:@"界面3到界面2" forKey:@"twoData"];

  [self dismissViewControllerAnimated:YES completion:nil];

}

- (void)gotoOne{

  // 连续presentingViewController可以获取根控制器
  UIViewController *vc = self.presentingViewController.presentingViewController;

  [vc setValue:@"界面3到界面1" forKey:@"oneData"];

  [vc dismissViewControllerAnimated:YES completion:nil];

}

- (void)viewDidAppear:(BOOL)animated {

  NSLog(@"%@ -- %@",self,_treeData);

}

@end
模态窗口与非模态窗口 由于在Create返回后,不能确定对话框是否已关闭,这样也就无法确定对话框对象的生存期,因此只好在堆栈中构建对话框对象,而不能以局部变量的形式来构建之。模态与非模态,在概念上还是比较好理解的。由于局部消息循环只在对话框中的一个响应函数中,而全局的消息循环也被阻断,局部循环一直运行,如果用户不进行处理并关闭模态对话框,该循环会一直不退出。当然在前端开发,java语言,python窗口里,无一不例外的涉及到模态与非模态的设计理念,而不仅仅是在QT和MFC里,这是一个软件设计模式概念,不是编程语言概念。 阅读详情

相关推荐

JavaScript模态窗口实现指南

本文还有配套的精品资源,点击获取 简介:本文深入探讨了JavaScript模态窗口的创建和使用,包括纯原生实现以及利用Bootstrap和SweetAlert2等现有库。通过代码示例和步骤解析,向读者展示了如何创建自定义模态窗口,并提供了对不同库的比较和选择建议,帮助开发者在不同场景下灵活应用模态窗口技术,提升网页交互体验。 1. 模态窗口概念和特点 模态窗...

weixin_35756892的博客 2403

交互设计-1.临时视图—模态视图

例如:临时视图可以占据整个屏幕,也可以是在上级视图之上(比如气泡弹出框),或者屏幕的一部分。让用户只有在完成当前的任务或关闭一个信息或页面之后,才能去做其它的事情;当屏幕上出现临时视图时,用户必须通过点击按钮或是其它特殊方式才能退出;临时视图多数都会有 “完成” 和 “取消” 按钮来退出视图。1. 占据整个屏幕或屏幕的一部分,或者占据父视图的部分区域;二、模态视图是浮于主任务之上,暂停了主任务进程,且服务于当。模态视图、警告视图、操作列表、吐司(Toast);一、子页面是从主任务下分支的另一任务;

harry5952671的博客 485

从 JDK8 到 JDK17:CRMEB 框架升级

【摘要】CRMEB开源框架已成功从JDK8升级至JDK17,带来显著性能提升:并发吞吐量提高35%,响应延迟降低40%,资源占用减少25%。升级方案解决87个技术卡点,支持模块化扩展和微服务转型,兼容SpringBoot3.0等新技术。提供基础版到企业级的升级服务,包含代码重构指导和性能调优。经金融级验证的方案可帮助电商平台实现日均10万+UV承载,支付成功率提升至99.7%。现以低于市场30%的价格提供全周期技术支持,助力企业抢占技术先机。

weixin_39782540的博客 701

探索iOS开发新方式:iOS-Modal框架

探索iOS开发新方式:iOS-Modal框架 是一个专为iOS应用设计的轻量级模态展示库,它提供了一种简单、高效的解决方案,用于在iOS应用中实现各种类型的模态显示效果。这款开源项目由Swift编写,旨在让开发者能够更方便地处理模态窗口,提高用户体验和开发效率。 技术分析 1. 灵活的API设计 iOS-Modal采用了易于理解和使用的API,只需几行代码即可创建并展示模态视图。这种简洁的设计使得...

gitblog_00074的博客 540

微机原理与接口技术第六版周荷琴课后习题答案及解析(期末重点)

第二章 1.8086/8088CPU可直接寻址多少个内存(字节)单元?多少个I/O端口?它们的外部数据总线各有多少根? 8086/8088CPU使用的是20位地址总线,因此可以直接寻址2的20次方个内存单元(即1,048,576),每个单元大小为1字节,因此可以直接寻址2的20次方个字节的内存。 8086/8088CPU有64K个I/O端口,每个端口占用1字节的地址空间,因此可以直接寻址6...

Wmicheng的博客 1万+

C语言实现定时任务

例:设置定时任务,每周周X的X时X分自动重启系统 思路:将设置好的重启时间保存到本地配置文件中,设置定时器定时一分钟,每一分钟信号触发一次事件,事件函数中获取配置文件信息与当前系统时间信息,将两个时间进行时间差计算,符合条件的自动重启系统. //创建定时器函数(通过信号触发事件timer_task函数启动) int create_timer() { struct sigevent evp; int ret = 0; memset(&evp, 0, sizeof(stru

佳佳鸽的博客 5036

iOS模态视图小结

一开始,我觉得iOS模态视图只不过和push&pop差不多,都是为了实现跳转而生的。而且它比push更方便的是它不需要UINavigationController,直接使用代码: ModalViewController *mvc = [[ModalViewController alloc] init]; [self presentViewController:mvc ...

fang20180409的博客 754

人工智能训练师三级补贴3120元申领全攻略|条件+流程+五省市对比

补贴是真的,但不是"白给"的。你需要满足社保、户籍、时间等条件,严格按照流程操作。记住四件事先确认自己是否满足条件,再报名——别考完了才发现领不到紧缺工种补贴更高——确认你所在城市是否在紧缺目录中证书下发后12个月内申请——设个日历提醒材料准备齐全再提交——避免来回折腾如果你正在考虑考人工智能训练师三级证书,想要从报名到备考到拿证到申领补贴的完整一站式指南,欢迎查看我的付费专栏:📖《人工智能训练师三级·从零到拿证完全指南》80篇系统化内容,覆盖报名、备考、冲刺、拿证全流程。

白话机器学习 1519

【mark】IOS开发多视图技术总结之:ModalView(模态视图)

原文地址:http://www.apkbus.com/android-131228-1-1.html

idscarecrow的专栏 531

华为昇腾开发——多模型资源管理(C++)

在使用Ascend ACL(Ascend Computing Language)的ACLLite库进行多模型推理时,合理的资源管理至关重要。

如果想成为中心,那么就到中心去吧。 575

Challenge 4 - OSCP A

在c盘下发现一个windows.old,在里面可以找到SYSTEM和SAM文件,下载到本地,利用samdump2解密发现没解出来,再来试试pwdump.py(https://github.com/CiscoCXSecurity/creddump7)得到压缩包密码bludecode,解压之后发现一个比较特殊的文件configuration.php,里面有两个类似密码的字符串。登录之后在/opt/backups/下发现几个特殊文件,其中sitebackup3.zip是个正常的压缩包。但是这个压缩包是有密码的。

羽的博客 5777

iOS开发UI篇—iPad开发中得modal介绍

iOS开发UI篇—iPad开发中得modal介绍 一、简单介绍   说明1:   在iPhone开发中,Modal是一种常见的切换控制器的方式     默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止 说明2:   在iPad开发中,Modal的使用频率也是非常高的   对比iPhone开发,Modal在iPad开发中多了一些用法   二、呈现样式  (一)什么叫呈...

weixin_33904756的博客 251

微信小程序 - 解决微信支付报错 requestPayment:fail no permission 原因分析及排查处理(支付失败出错,无法唤起支付弹框面板,微信支付API报错请求付款:失败无权限)

微信小程序,微信支付,支付报错,errMsg: "requestPayment:fail no permission",支付失败,支付权限没问题,微信小程序支付报错,检查了appid正确依旧不行,微信小程序支付异常,苹果ios手机,安卓手机,开发者工具模拟器,最新解决教程,小程序wx.requestPayment报错/无响应,小程序支付 requestPaym,微信小程序认证,真机运行,小程序微信支付提示错误,微信小程序里使用微信支付错误提示,微信小程序支付异常,微信支付弹框拉不起来,小程序支付api,都检

🏆 前端领域优质创作者 1万+

Electron 如何创建模态窗口?

模态框是一种常用的交互元素,无论是在 Web 网站、桌面应用还是移动 APP 中,都有其应用场景。

蜗牛老师,专注编程领域 4496

使用podspec创建iOS插件

概述 在WWDC 2014全球开发者大会上,苹果开放了动态库、App Extension等全新的功能,这为iOS插件化开发带来了可能。在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文件、头文件、资源文件和说明文档等集中在一起,并且可以在运行时进行动态加载。 目前,很多应用越做越复杂,应用程序也显得越来越臃肿。试想一下,如果将一些不常用的功能做成一个插件,然后根据用户的需求从网络中...

xiangzhihong8的专栏 991

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MFC模态窗口与非模态窗口

MFC模态窗口与非模态窗口 开发工具与关键技术:C++、VisualStudio 作者:何任贤 撰写时间:2019年07月25日 模态窗口的意思是指主窗口在打开模态窗口后,没法再操作主窗口,这就是模态窗口,而非模态窗口刚好和模态窗口相反,就是主窗口在打开非模态窗口后,还可以继续操作主窗口,即为非模态窗口。 那么项目创建就不说了,那么首先是我们在主窗口要有一个按钮,这个按钮的作用是点击打开模态窗口...

qq_41973378的博客 1195

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Qt模态窗口详解

qt中模态窗口在槽函数,和mqtt协议联合使用时需要注意事项

qq_30360351的博客 2639

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WPF 解决弹出模态窗口关闭后,主窗口不在最前

本文告诉大家如何解决这个问题,在 WPF 的软件,弹出一个模态窗口。使用另一个窗口在模态窗口前面。从任务栏打开模态窗口。关闭模态窗口。这时发现,主窗口会在刚才使用的另一个窗口下面

lindexi 3360

模态窗口使用总结

问题现象:1、当向模态窗口传递参数时候,第一次打开可以得到session(。。)这个值,给session赋值另一个时候,模态窗口得到依旧是前一次的值2、在开发过程中发现用模态窗口打开的页面会自动取缓存,使程序无法进入断点,给程序调试带来很大麻烦。解决方案1:在当前页面清除CACHE,在页面代码头部加上 即可禁用当前页面缓存 解决方案2:在调用连接里添加个随机数,使模态窗口认为是不同的连接例

lne818的专栏 7768

模态窗口原理及注意事项

前言在开发Windows引用程序的时候,在一些需要用户确认,或者提示用户注意的场合,经常使用模态对话框,或者叫模态窗口。在绝大多数情况下,模态窗口给开发人员带来了极大的便利,并且在某些应用上有不可替代的优势。然而凡事有利必有弊,如果不正确地使用模态窗口,却有可能带来某些严重问题,甚至可能引起程序崩溃。要想知道为什么模态窗口可能带来某些严重问题,就必须首先了解模态窗口的实现原理。因此本文将首先介

赵凯的专栏 7144

模态窗口啊

所谓模态窗口就是在一个页面上点击的时候会出现一个小窗口,你可以在这个小窗口中完成某一个功能。例如你想添加用户,在页面上点击添加按钮后不会跳到一个新的页面而是弹出一个添加的小框,在里面完成你的操作。 模态窗口:模拟的窗口。 以前实现这功能可以使用 window.open(“url”,_blank); 表示新开一个窗口打开这个url 但是这种方式有缺陷 现在的模态窗口本质上是< div >通过设置Z-index大小来实现的 默认情况下z轴初始参数是0即可想使用的话先...

weixin_46427348的博客 1371

Qt基础-模态与非模态窗口

VS+Qt应用开发-模态与非模态窗口模态与非模态的区别模态窗口的实现方法QDialog对话框QWidget和QMainWindow窗口 在Qt中,QDialog是所有对话框窗口类的基类,不只是对话框有模态与非模态区分,QWidget和QMainWindow窗口也可以设为模态,因此文章不称模态/非模态对话框,而叫做模态/非模态窗口。 模态与非模态的区别 模态(modal)窗口:窗口弹出后,没关闭之前,不可以对同一应用程序的其他窗口进行操作; 非模态(modeless)窗口:窗口弹出后,没关闭之前,可以对同一应

羽士的博客 5780

WinForm:模态窗口与非模态窗口、Close与Dispose

1、模态窗口与非模态窗口的区别: ①调用ShowDialog显示的为模态窗口,Show显示的为非模态窗口。 ②模态窗口会堵塞主窗口,在模态窗口关闭前不能对主窗口进行操作。非模态窗口显示时依然可以操作主窗口。 2、Close()与Dispose()的区别: 对于模态窗口,调用Close后只会隐藏窗口,不释放资源!!!窗口线程还在运行,包括定时器什么的,要想完全关闭、释放所有资源,需要调用Dispose; 对于非模态窗...

我爱学习,学习爱我 3680

WinUI3开发_模态窗口

摘要 本文介绍了WinUI3中模态窗口的实现方法。主要内容包括: 模态窗口概念:模态窗口会阻止用户与其父窗口交互,直到关闭。 WinUI3实现方式:使用ContentDialog控件,重点参数说明: XamlRoot:指定模态窗口根元素 各种按钮设置(Primary/Secondary/CloseButtonText) Content:支持简单文本或复杂控件布局 ShowAsync异步显示方法 代码示例: 基础配置:根元素、样式、按钮文本 内容设置:支持简单文本(box_value转换)或自定义Page 结

17岁boy的博客 1782

asp.net模态窗口使用

1 如何在提交后防止弹出新窗口2 在模态窗口中再次弹出模态窗口3 模态窗口返回值4 刷新父窗口5 父窗口如何添加刷新脚本 主窗口弹出一个模态窗口,var firstDiag = window.showModalDialog(url,window,"center:yes;dialogWidth:300px;dialogHeight:400px");注:在url文件的h

aa332073044的专栏 2498

在模态窗口中实现页面跳转

今天使用模态窗口的时候碰到了一个问题。 在使用showModalDialog方法打开一个模态窗口进行操作的过程中,需要在此模态窗口中跳转到另一个页面进行操作。最初的实现代码如下:function postUrl() ...{    var url = "XXXX";    document.form.action = url;    document.form.submit();}

yechwei的专栏 6122
上一篇: iOS之模态情境
下一篇: 控制器之间的数据传递——storyboard中控制器的数据传递
活在生活里
博客等级 码龄11年 94粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值