首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在不调用self.dismissViewController的情况下关闭视图控制器的替代方法

是使用以下方法之一:

  1. 使用NotificationCenter进行通知:
    • 在要关闭的视图控制器中,添加一个观察者,监听一个自定义的通知。
    • 在需要关闭该视图控制器的地方,发送该自定义通知。
    • 在观察者方法中,执行关闭视图控制器的操作。
    • 这种方法适用于需要在不同的地方关闭同一个视图控制器的情况。
  2. 使用代理模式:
    • 在要关闭的视图控制器中,定义一个代理协议,并声明一个关闭视图控制器的方法。
    • 在打开该视图控制器的地方,设置代理为当前视图控制器,并实现关闭视图控制器的方法。
    • 在需要关闭该视图控制器的地方,调用代理的关闭方法。
    • 这种方法适用于需要在打开视图控制器的地方主动关闭该视图控制器的情况。
  3. 使用闭包(Closure):
    • 在要关闭的视图控制器中,定义一个闭包属性,类型为无返回值的闭包。
    • 在打开该视图控制器的地方,设置闭包属性为一个闭包,该闭包包含关闭视图控制器的操作。
    • 在需要关闭该视图控制器的地方,调用闭包属性。
    • 这种方法适用于需要在打开视图控制器的地方主动关闭该视图控制器的情况。

以上是在不调用self.dismissViewController的情况下关闭视图控制器的替代方法。根据具体的需求和场景,选择适合的方法来关闭视图控制器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有abi文件情况下调用智能合约方法,web3py实现

确定函数调用签名 也就是 0xb45112b2 区块链中合约代码执行,需要指定某个合约地址某个函数,其中这个执行函数是使用 Keccak-256(SHA-3)编码后散列,取散列前四个字节作为函数签名...1,搜索网上签名数据库:https://www.4byte.directory/signatures/ 搜索结果如下: 说明还没有上传函数 abi 定义 2,没有函数 abi 信息,就没办法调用了吗...只需要找到函数定义,就相当于,你定义一个函数指针,签名只是这个函数指针,函数参数保证调用堆栈不出错,而函数签名我们是有的。...使用时候,address 为合约地址 greeter = w3.eth.contract( address='0xB5816B1C17ce9386019ac42310dB523749F5f2c3...', abi=jsobjs['abi'] ) 再就是调用方法 搞定问题 1,查看 webpy 代码,显然这样调用是不支持

2.2K30

关于Spring 中方法内部调用自身方法事务 REQUIRE_NEW 生效解释

问题来自:Spring事务传播行为中REQUIRES_NEW真的有效吗 这个是Spring 对拦截实现有关。Spring 拦截实现方法是动态生成一个代理类。...这种方式对 target.method() 方式调用是可以拦截到,对于类内调用 method() 方式则拦截不到。...}); dynamicProxy.a(); } } 执行结果为: invoke in proxy this is a this is b 从这可以看出你类内自行调用方法是不会被代理拦截到...,目标类invoke方法中,我们可以看到这块代码 public Object intercept(Object proxy, Method method, Object[] args, MethodProxy...,可以使用 AopContext.currentProxy(); 方式得到,使用获取到代理类再调用方法就可以再次走事务处理逻辑了。

1.4K30

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

进程终止时候你没有机会持久化数据。因此如果你想最大可能保持数据丢失,你应该在用户一进入(activity)时候就进行持久化。...如果你允许类似设备突然关机情况下丢失数据,你可以 'onStop()'回调时候将其保存,这个方法 activity 一进入后台时候就会被调用。...onSaveInstanceState() 是被系统 activity stopped 但没有 finished 时调用,而不是在用户显式地关闭 activity 或者在其他情形而导致 finish...注意,很多 UI 数据会自动地被保存和恢复: “该方法默认实现保存了关于 activity 视图层次状态临时信息,例如 EditText 控件中文本或者 ListView 控件中滚动条位置。”...onSaveInstanceState() 配置更改期间和 activity 进入后台时被调用;在这两种情况下,如果你数据被保存在 ViewModel 中,实际上并不需要重新加载或者处理他们。

3.7K30

ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

这意味着你不能依赖于 onDestroy 调用进程终止时候你没有机会持久化数据。因此如果你想最大可能保持数据丢失,你应该在用户一进入(activity)时候就进行持久化。...如果你允许类似设备突然关机情况下丢失数据,你可以 'onStop()'回调时候将其保存,这个方法 activity 一进入后台时候就会被调用。...onSaveInstanceState() 是被系统 activity stopped 但没有 finished 时调用,而不是在用户显式地关闭 activity 或者在其他情形而导致 finish...注意,很多 UI 数据会自动地被保存和恢复: “该方法默认实现保存了关于 activity 视图层次状态临时信息,例如 EditText 控件中文本或者 ListView 控件中滚动条位置。”...onSaveInstanceState() 配置更改期间和 activity 进入后台时被调用;在这两种情况下,如果你数据被保存在 ViewModel 中,实际上并不需要重新加载或者处理他们。

92520

iOS导航栏使用总结

注意1:局部设置与全局设置方法相同,但调用方法对象变成了"self.navigationController.navigationBar" 注意2:局部设置必须遵循一个原则:"进入页面时修改,离开页面时还原...导航栏视图层级图 从图中可以看出,导航栏底部分割线是一个UIImageView对象,而且高度只有0.5,所以我们可以据此获取到导航栏底部分割线对象,一个视图控制器中实现此需求,代码如下: #import...,用于优化滑动类视图(继承于UIScrollView视图)视图控制里显示: iOS系统导航栏UINavigationBar与标签栏UITabBar默认都是半透明模糊效果,在这种情况下系统会对视图控制器...导航栏透明情况下,滑动视图自动偏移,普通视图被遮挡 其实,这种系统优化也是可以控制关闭关闭优化之后,滑动视图就会和普通视图一样,如果还设置其布局原点是(0,0),其内容就会被导航栏所覆盖,关键代码如下...,那么视图控制器控件就会默认从(0,64)开始布局了,设置导航栏不透明方法如下: self.navigationController.navigationBar.translucent= NO;

3.1K20

SSM简介

ModelAndView ModelAndView是springmvc框架一个底层对象,包括Model和View 第八步:前端控制器请求视图解析器去进行视图解析,根据逻辑图名解析成真正视图(jsp...) 第九步:视图解析器向前端控制器返回View 第十步:前端控制器进行视图渲染,视图渲染将模型数据(ModelAndView对象中)填充到request域 第十一步:前端控制器向用户响应结果...@ModelAttribute和@SessionAttributes 代表是:该Controller所有方法调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个...一般用@Controller注解,表示是控制层,不能用别的注解替代。 Springmvc控制器是不是单例模式,如果是,有什么问题,怎么解决?...缺点:a、工作量较大,特别是字段多,关联表多情况下      b、sql语句编写依赖于数据库,移植性差。      c、不支持级联删除,级联更新,需要自己对表进行删除。

75130

ThinkPHP5开发正确姿势

; 不要试图初始化方法调用redirect助手函数,而用$this->redirect方法替代; 始终控制器方法中return而不是echo以免影响请求缓存; 用json、view以及redirect...; 如非必要避免直接操作Db类; 用Db类name方法而不是table方法; 用视图查询view方法替代join方法; 查询操作尽可能使用field方法,哪怕是field(true); 如果要批量执行...; 关于日期和时间查询不妨试试whereTime方法; 数据库大多数操作都是自动参数绑定,一般情况下无需手动使用bind方法; insert方法返回是影响记录数而不是主键; 使用insertGetId...); 模型save方法既可以新增也可以更新(而且是自动识别); 模型没有链式操作,所有链式操作都是调用数据库类Db; 模型支持事件而数据库类操作不支持事件; 统一模型init方法(静态方法)中注册模型事件...,一旦新增数据成功后,再次save就是更新数据了,除非你显式调用isUpdate(false); 用模型事件取代自动完成; 其它篇 开发过程中开启调试模式,部署后记得关闭; 如果不是API开发的话开启页面

89130

SpringMVC学习笔记(一) --- SpringMVC入门

DispatcherServlet通过HandlerAdapter处理器适配器调用处理器。 执行处理器(Controller,也叫后端控制器)。...3、Handler:处理器 Handler 是继DispatcherServlet前端控制器后端控制器DispatcherServlet控制下Handler对具体用户请求进行处理。...一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体页面。...,根据ResquestMapping定义url匹配ResquestMapping标记方法,匹配成功返回HandlerMethod对象给前端控制器,HandlerMethod对象中封装url对应方法...此属性可以设置,默认为JstlView; prefix 和suffix:查找视图页面的前缀和后缀,最终视图址为:前缀+逻辑视图名+后缀,逻辑视图名需要在controller中返回ModelAndView

42350

MVC 3.0 新特性 摘要

控制器改进 全局 Action 过滤器 有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑, ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器...MVC 中,你需要在视图中显式调用 Html.EnableClientValidation 方法来启用客户端验证。...这允许客户端验证库自动调用一个你定义服务器上自定义方法来完成只能在服务器上完成验证逻辑。...实际上,有时你希望能够显式关闭请求验证,例如你希望允许用户提交 HTML 内容,例如在内容管理系统中,现在你可以通过增加 AllowHtml 标签到 Model 或者视图 Model 来支持绑定时候基于一个属性关闭请求验证...默认情况下,创建和编辑脚手架现在使用 Html.EditorFor 助手来替代 Html.TextBoxFor 助手,这个改进在增加视图对话框生成一个视图时候,支持模型中元数据标签。

2.5K10

iOS屏幕旋转及其基本适配方法

我们需要在当前视图控制器中添加如下方法: //1.决定当前界面是否开启自动转屏,如果返回NO,后面两个方法也不会被调用,只是会支持默认方向 - (BOOL)shouldAutorotate {...当然,在一般情况下,我们项目都是用UITabbarViewController作为Window视图控制器,然后管理着若干个导航控制器UINavigationBarController,再由导航栏控制器去管理普通视图控制器...如果具有高优先级控制器关闭了旋转设置,那么低优先级控制器是无法做到旋转。...但如果存在上层根视图控制器,而我们只在这个视图控制器中实现方法,会发现这个方法,因为这个方法被上层根视图控制器拦截了。理解这个原理后,我们有两种方法实现自动可控旋转设置。...方法2: 另辟蹊径,使用模态视图 使用模态视图可以不受这种根视图控制器优先级限制。这个也很容易理解,模态弹出视图控制器是隔离出来,不受根视图控制影响。

9K60

Spring MVC组件

用户请求到达前端控制器,它就相当于 mvc 模式中 c,dispatcherServlet 是整个流程控制中心,由 它调用其它组件处理用户请求,dispatcherServlet 存在降低了组件之间耦合性...一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开 发具体页面。 7....说明 SpringMVC 各个组件中,处理器映射器、处理器适配器、视图解析器称为 SpringMVC 三大组件。...SpringMVC.xml 配 置 文 件 中 使 用 mvc:annotation-driven替代注解处理器和适配器配置。...注意: 一般开发中,我们都需要写上此标签(虽然从入门案例中看,我们写也行,随着课程深入,该标签还 有具体使用场景)。 明确: 我们只需要编写处理具体业务控制器以及视图

45540

ASP.NET 5系列教程 (三):view components介绍

ASP.NET MVC 6中,view components (VCs) 功能类似于虚拟视图,但是功能更加强大。 VCs兼顾了视图控制器优点,你可以把VCs 看作一个Mini 控制器。...· 调用View中公开方法,可以传递任意数量参数。异步版本中, InvokeAsync是可用。在后续章节中我们将提及InvokeAsync 和多参数使用方法。...如果 VC 调用方法没有传递视图名称 (如例子中所示),那么默认情况下调用视图名称对于方法。在后续文章中,将阐述如何传递视图名称。...方法,使用更加强大asynchronous方法替代。...指定视图名称 一些复杂VC某些情况下也许需要去指定特定视图,以下代码是通过InvokeAsync 方法指定视图方法: public async Task<IViewComponentResult

1.6K60

javaweb-springMVC-54

客户端超链接产生请求》》被前端控制器,servelt拦截》》解析后跳转》》《《跳转后数据返回前端控制器 前端控制器》》调用视图解析器。。。 最后前端控制器处理完成后反馈给》》客户端 ?...( 处 理 适 配 器 ) , 可 用 SpringMVC.xml 配 置 文 件 中 使 用 mvc:annotation-driven替代注解处理器和适配器配置。...因此之前spring.xml中只需要再配置视图解析器就完成了 我们只需要编写处理具体业务控制器以及视图。 ?...获得serverlet原生api 控制器中使用原生ServletAPI对象 只需要在控制器方法参数定义HttpServletRequest和HttpServletResponse对象 假如在控制器中就想获得原生接口而非封装过.../right 切换代码视图 Alt+ Up/Down 方法间快速移动定位 Ctrl+Shift+Up/Down 代码向上/下移动。

56820

设计模式大集合

组合 将对象组合成树形结构,以表示部分整体层次结构。使客户端可以统一处理单个物体和对象组合。 装饰器 将额外责任附加到一个动态保持相同接口对象上。装饰器提供了一种灵活替代方法来扩展功能。...解释器 使用一种语言,为它语法定义一个表示,以及一个使用该表示来解释语言句子解释器。 迭代器 提供了一种方法,可以暴露其底层表示情况下连续访问聚合对象元素。...并发模式 名称 描述 活动对象 将方法执行从位于其自身控制线程中方法调用中分离出来。我们目标是通过使用异步方法调用和处理请求调度程序来引入并发性。...控制器从用户那里解释鼠标和键盘输入,通知模型和/或视图适当时候进行更改。...表示 模型-视图-viewmodel 模型-视图-控制器(MVC)变种,它是为现代UI开发平台量身定做视图是设计师职责,而不是传统开发人员。

1.2K90

设计模式大集合

组合 将对象组合成树形结构,以表示部分整体层次结构。使客户端可以统一处理单个物体和对象组合。 装饰器 将额外责任附加到一个动态保持相同接口对象上。装饰器提供了一种灵活替代方法来扩展功能。...解释器 使用一种语言,为它语法定义一个表示,以及一个使用该表示来解释语言句子解释器。 迭代器 提供了一种方法,可以暴露其底层表示情况下连续访问聚合对象元素。...并发模式 名称 描述 活动对象 将方法执行从位于其自身控制线程中方法调用中分离出来。我们目标是通过使用异步方法调用和处理请求调度程序来引入并发性。...控制器从用户那里解释鼠标和键盘输入,通知模型和/或视图适当时候进行更改。...表示 模型-视图-viewmodel 模型-视图-控制器(MVC)变种,它是为现代UI开发平台量身定做视图是设计师职责,而不是传统开发人员。

82230

iOS好用第三方侧边栏控件——MMDrawerController

二、MMDrawerController使用及相关设置         MMDrawerController使用十分简单,只需将中心视图控制器和左边栏视图控制器传入初始化方法即可完成MMDrawerController...= 1 << 2, //中心视图控制器视图边缘20个单位内拖动时可以打开侧边栏 MMOpenDrawerGestureModeBezelPanningCenterView...= 1 << 1, //中心视图控制器上推动时可以关闭侧边栏 MMCloseDrawerGestureModePanningCenterView = 1 << 2,...//中心视图控制器边缘20单位内拖动是可以关闭侧边栏 MMCloseDrawerGestureModeBezelPanningCenterView = 1 << 3, //...时,开发者可以导入MMDrawerController+Subclass.h文件,这个文件中提供了许多控制器监听方法供开发者重写,解析如下: //出现单击手势会回调方法 如果要重写 必须调用父类方法

2.8K20

java学习与应用(4.5)--Cookie、Session、JSP等

一次请求可以发送多个cookie键值对(多个Cookie对象通过addCookie方法添加),cookie默认浏览器关闭时被销毁,可设置持久化存储到硬盘时间(CookiesetMaxAge方法传入整数秒设定存活时间...浏览器下cookie大小有限制(4kb,20个),用于存储少量,不太敏感数据(不安全)。可以用于网页离线信息设置和同步(登录情况下网页偏好设置)。...session实效时间:服务器关闭时,invalidate方法,session默认失效时间为30分钟(定义web.xml中)。...MVC开发模式 MVC开发模式:javaweb开发借鉴mvc开发模式,使得程序设计更合理(弥补jsp难以维护)(Model View Controller 模型 视图 控制器),服务器中控制器调用模型...数据操作:三层架构,使用控制器Servlet处理,控制器调用XXXService.java数据(JavaBean)操作,该数据操作调用UserDao.java。最后控制器重定向地址。

1.3K30
领券