首页 > 其他分享 >ios push 无响应处理

ios push 无响应处理

时间:2024-01-22 18:01:55浏览次数:22  
标签:控制器 嵌入 navController ios ReleaseViewController 响应 UINavigationController push

在开发中,碰到一个场景,具体是这样的:View-1 prsent 到 VC1,VC1 push 到 VC2,结果 push 没有反应?

具体原因如下:

如果 ViewController 无法执行 push 操作,这可能是因为它没有被嵌入在一个 UINavigationController 中。当你使用 presentViewController:animated:completion: 方法展示 ReleaseViewController 时,它本身并不会被放入导航控制器堆栈中,除非它已经是一个 UINavigationController 的子类或者已经被嵌入到一个 UINavigationController 里。

解决方法:

为了能够在 ViewController 中执行 push 操作,你需要首先确保它是作为 UINavigationController 的一部分被展示的。这里是一个正确的方法,将 ReleaseViewController 嵌入到一个新的 UINavigationController 中,然后展示这个导航控制器:

ReleaseViewController *vc = [ReleaseViewController new];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:vc];
UINavigationController *rootNavController = (UINavigationController *)[UIApplication sharedApplication].delegate.window.rootViewController;

[rootNavController presentViewController:navController animated:YES completion:nil];

在这个修正后的代码中,ReleaseViewController 被初始化为 navController 的根视图控制器,然后这个 navController 被模态呈现。这样,ReleaseViewController 内部的 push 操作就会有一个导航堆栈可供使用。

一旦 ReleaseViewController 被嵌入到 UINavigationController 中,它就可以使用 self.navigationController 来执行 push 操作:

SomeOtherViewController *otherVC = [SomeOtherViewController new];
[self.navigationController pushViewController:otherVC animated:YES];

这里的 self.navigationController 将不再是 nil,因为 ReleaseViewController 现在是一个导航控制器的一部分。

零散知识点,仅做记录!

标签:控制器,嵌入,navController,ios,ReleaseViewController,响应,UINavigationController,push
From: https://blog.51cto.com/u_13188203/9368863

相关文章

  • iOS应用程序混淆加固原理及逆向工具介绍
    概要本文将介绍iOS应用程序混淆加固的原理和常见的加固类型,以及介绍一些常用的逆向工具。同时还会介绍一种代码虚拟化技术,用于进一步保护应用程序不被逆向分析。 引言移动应用程序开发面临着越来越严峻的安全挑战,特别是在越狱设备上,应用程序的可执行文件容易受到逆向工具的......
  • 【教程】iOS Swift应用加固
    ......
  • 基于CMFB余弦调制滤波器组的频谱响应matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述        CMFB余弦调制滤波器组是一种基于余弦调制技术的滤波器组,它具有频率选择性和可调性,可以广泛应用于信号处理、图像处理、通信等领域。下面将详细介绍其原理、数学公式等。 3.1......
  • 【Servlet】Request请求对象 && Response响应对象 && 资源路径问题
    Request&&Response简介在Servlet中,Request对象和Response对象是两个重要的接口,它们用于处理客户端发来的请求和向客户端发送响应。Request对象Request:获取请求数据Request继承体系Request获取请求数据Request使用通用方式获取请求参数Request请求参数中中文乱码问题......
  • SpringBoot项目通过注解快速解决,字典翻译,响应数据加密,数据脱敏等问题
    简介在几乎所有SpringBoot项目中都会面临字典翻译,接口数据加密,数据脱敏的问题。在每个接口中单独的解决会非常繁琐,因此接下来介绍一下怎么通过注解快速解决这些问题。实现步骤1.引入maven坐标<dependency><groupId>io.gitee.gltqe</groupId>......
  • 输入git push命令显示ssh: connect to host github.com port 22: Connection timed ou
    之前都好好的,今天 gitpush 的时候突然出现这个问题: 解决方法:更改SSH端口(亲测可用)先试试这个命令:[email protected]此时出现如下提示信息:Theauthenticityofhost'[ssh.github.com]:443([20.205.243.160]:443)'can'tbeestablished.ED25519key......
  • git push 报错 ! [remote rejected] main -> main (pre-receive hook declined) error
    今天在用gitpush项目的时候,出现了一个报错,记录一下解决方案,以后报同样的错误可以回来看。错误下面是gitpush的详细报错信息:20866@DESKTOP-7R0VL04MINGW64/d/AllProjects/JupyterProjects(main)$gitpushoriginmainEnumeratingobjects:152,done.Countingobjects:......
  • BIOS
    BIOS(BasicI/OSystem,基本输入输出系统)是计算机启动时自动执行的一组程序,位于计算机主板上的ROM(只读存储器)中.BIOS的主要功能是初始化计算机硬件,并进行自检,确保硬件设备正常运作.此外,BIOS还负责加载操作系统,为操作系统提供硬件控制和管理功能.BIOS在计算机启动过程中分......
  • SpringBoot项目通过注解快速解决,字典翻译,响应数据加密,数据脱敏等问题
    简介在几乎所有SpringBoot项目中都会面临字典翻译,接口数据加密,数据脱敏的问题。在每个接口中单独的解决会非常繁琐,因此接下来介绍一下怎么通过注解快速解决这些问题。实现步骤1.引入maven坐标<dependency><groupId>io.gitee.gltqe</groupId><artifactId>......
  • 百度搜索Push个性化:新的突破
    作者|通用搜索产品研发组导读本文简单介绍了百度搜索Push个性化的发展过程,揭示了面临的困境和挑战:如何筛选优质物料、如何对用户精准推荐等。我们实施了一系列策略方法进行突破,提出核心的解决思路和切实可行的落地方案。提升了搜索DAU和点击率,希望本文的内容能为相关从业者带来启......