首页
学习
活动
专区
工具
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.4K30

关于在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.5K30
  • ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

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

    3.8K30

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

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

    1K20

    SSM的简介

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

    84830

    iOS导航栏使用总结

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

    3.2K20

    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开发的话开启页面

    95130

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

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

    45250

    MVC 3.0 的新特性 摘要

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

    2.6K10

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

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

    9.5K60

    Spring MVC组件

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

    47340

    设计模式大集合

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

    1.3K90

    javaweb-springMVC-54

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

    59220

    设计模式大集合

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

    83830

    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.7K60

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

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

    1.4K30

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

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

    2.9K20
    领券