模态的跳转底层

简介: 模态的跳转底层
  • 当在modal时,会把窗口上面的view给移除掉,然后要modal控制器的view给添加到窗口上


  • 如果当一个控制器被销毁,那么它的View的业务逻辑是无法处理的
  • 控制器被销毁,控制器的View不一定被销毁(只要有强指针指向它,就不会被销毁)


image.png

image.png


  • 1.modal跳转

- (IBAction)click:(UIButton *)sender {
   #pragma mark 1.系统的modal,系统在跳转时控制器不会被销毁是
   因为有一个属性在强引用控制器self.presentedViewController
 NSLog(@"%@",self.presentedViewController);
OneViewController *one = [OneViewController new];
//当在modal时,会把窗口上面的view给移除掉,然后要modal控制器的view给添加到窗口上
// 如果当一个控制器被销毁,那么它的View的业务逻辑是无法处理的
// 控制器被销毁,控制器的View不一定被销毁(只要有枪指针指向它,就不会被销毁)
//    [self presentViewController:one animated:YES completion:^{
//      
//        NSLog(@"完成了模态");
//        
//    }];
#pragma mark 2.自定义的modal
CGRect frame = one.view.frame;
frame.origin.y = [UIScreen mainScreen].bounds.size.height;
one.view.frame = frame;
[[UIApplication sharedApplication].keyWindow addSubview:one.view];
//强引用控制器,防止被销毁
_oneVC = one;
[UIView animateWithDuration:0.5 animations:^{
    one.view.frame = self.view.frame;
    } completion:^(BOOL finished) {
      //[self.view removeFromSuperview];
    }];
 }
  • 2.modal返回

- (IBAction)back:(UIButton *)sender {
    #pragma mark 1.系统的modal
    //[self dismissViewControllerAnimated:YES completion:nil];
    #pragma mark 2.自定义的modal
    [UIView animateWithDuration:0.5 animations:^{
    CGRect frame = self.view.frame;
    frame.origin.y = [UIScreen mainScreen].bounds.size.height;
    self.view.frame = frame;
} completion:^(BOOL finished) {
    //[[UIApplication sharedApplication].keyWindow addSubview:self.view];
   }];
}


目录
相关文章
|
6月前
|
机器人 图形学
3D视觉语言动作生成世界模型发布
【2月更文挑战第26天】3D视觉语言动作生成世界模型发布
249 3
3D视觉语言动作生成世界模型发布
|
1月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
|
20天前
|
机器学习/深度学习 自然语言处理 数据管理
GraphRAG核心组件解析:图结构与检索增强生成
【10月更文挑战第28天】在当今数据科学领域,自然语言处理(NLP)和图数据管理技术的发展日新月异。GraphRAG(Graph Retrieval-Augmented Generation)作为一种结合了图结构和检索增强生成的创新方法,已经在多个应用场景中展现出巨大的潜力。作为一名数据科学家,我对GraphRAG的核心组件进行了深入研究,并在此分享我的理解和实践经验。
42 0
|
1月前
|
JSON 计算机视觉 数据格式
LangChain-17 FunctionCalling 利用大模型对函数进行回调 扩展大模型的额外的能力 比如实现加减乘除等功能
LangChain-17 FunctionCalling 利用大模型对函数进行回调 扩展大模型的额外的能力 比如实现加减乘除等功能
41 4
|
3月前
|
API C# 数据库
SemanticKernel/C#:实现接口,接入本地嵌入模型
SemanticKernel/C#:实现接口,接入本地嵌入模型
83 1
|
6月前
|
机器学习/深度学习 人工智能
论文介绍:PreFLMR——扩展细粒度晚期交互多模态检索器以提升知识视觉问答性能
【5月更文挑战第3天】PreFLMR是扩展的细粒度晚期交互多模态检索器,用于提升知识视觉问答(KB-VQA)性能。基于FLMR,PreFLMR结合大型语言模型和检索增强生成,增强准确性与效率。通过M2KR框架全面评估,PreFLMR展示出色性能,尤其在E-VQA和Infoseek等任务。然而,其在预训练阶段未充分训练知识密集型任务,且仍有优化训练方法和数据集混合比例的空间。[论文链接](https://arxiv.org/abs/2402.08327)
171 1
|
6月前
|
机器学习/深度学习 自然语言处理 数据挖掘
ChatGPT创作内容的底层逻辑
ChatGPT创作内容的底层逻辑
90 4
ChatGPT创作内容的底层逻辑
|
6月前
|
机器学习/深度学习 数据采集 人工智能
chatgpt生成文本的底层工作原理是什么?
chatgpt生成文本的底层工作原理是什么?
165 0
|
机器学习/深度学习 人工智能 自然语言处理
这 10 本书,带你了解 ChatGPT 的底层逻辑
作为一门应用型学科,机器学习植根于数学理论,落地于代码实现。这就意味着,掌握公式推导和代码编写,方能更加深入地理解机器学习算法的内在逻辑和运行机制。 本书在对全部机器学习算法进行分类梳理的基础上,分别对监督学习单模型、监督学习集成模型、无监督学习模型、概率模型四个大类共 26 个经典算法进行了细致的公式推导和代码实现,旨在帮助机器学习的学习者和研究者完整地掌握算法细节、实现方法以及内在逻辑。
241 0
|
机器学习/深度学习 存储 算法
GIT:基于异构图的交互模型与跟踪器的文档级事件抽取 论文解读
文档级事件提取旨在从整篇文章中识别事件信息。由于这项任务的两个挑战,现有的方法并不有效:a)目标事件论点分散在句子中
194 0
下一篇
无影云桌面