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

将变量从一个ViewController传递回之前的一个,但变量没有更新?

在iOS开发中,将变量从一个ViewController传递回之前的一个,但变量没有更新的问题可能是由于以下几个原因导致的:

  1. 传递方式不正确:确保你使用了正确的传递方式。常见的传递方式包括使用代理模式、闭包(block)、通知中心、单例模式等。根据具体情况选择适合的传递方式。
  2. 变量未正确更新:在传递变量之前,确保变量的值已经被正确更新。可以通过打印变量的值或者使用调试工具来确认变量的值是否正确。
  3. 视图控制器生命周期问题:如果你在目标视图控制器中使用了viewDidLoad()方法来获取传递的变量值,可能会导致变量没有更新。因为viewDidLoad()方法只会在视图控制器第一次加载时调用,后续的切换不会再触发该方法。可以考虑使用viewWillAppear()或viewDidAppear()等方法来获取传递的变量值。
  4. 传递的目标视图控制器不正确:确保你传递的目标视图控制器是正确的,并且在导航栈中存在。如果目标视图控制器没有正确初始化或者没有被正确添加到导航栈中,可能导致变量没有更新。
  5. 数据传递的时机不正确:确保你在正确的时机传递变量。如果你在目标视图控制器加载之前就尝试传递变量,可能会导致变量没有更新。可以考虑在目标视图控制器加载完成后再传递变量。

总结起来,解决将变量从一个ViewController传递回之前的一个,但变量没有更新的问题,需要确保传递方式正确、变量已正确更新、视图控制器生命周期正确处理、传递的目标视图控制器正确以及传递时机正确。根据具体情况进行排查和调试,以确保变量能够正确传递和更新。

(以上答案仅供参考,具体情况可能需要根据实际代码和环境进行分析和解决。腾讯云相关产品和产品介绍链接地址请参考腾讯云官方文档或咨询腾讯云官方支持。)

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

相关·内容

iOS中storyboard故事板使用Segue跳转界面、

后来又出了一种方式,就是storyboard故事板子,其实storyboard和xib文件很像,最大不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard...对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来说,还是很方便,在storyboard中查看各个界面的跳转也很方便,之前一直使用xib...,因为这里要实现界面跳转,只有自带一个ViewController不够,我们再创建一个,command+N键创建一个Cocoa Touch Class。...要从Page2跳回到Page1,可 不能像上面一样再拉一个Segue回到Page1视图 ,这样在跳转过程中,跳一次添加一个新视图,跳一次添加一个新视图,原来视图都没有消去,会一直累加,并不是 回到...我们值有两种方式,正好在两传输过程中使用,先看第一个方法,实现从Page1值到Page2: 我们先在Page2中定义一个变量用来接收所传递值: // Page2.h文件中 @property

1.5K20

【iOS 开发】ViewController 减负记录

前言 最近在重构一个以前写老项目,在尝试给之前 ViewController 减负,尽量抽离代码到其他文件。...但是,基本上你不可能只有一个 ViewController,有了这种习惯之后,会让全局变量没有逻辑地分散在不同代码文件里,不易于管理(甚至可能会出现同一个东西以不同名字被创建了多次情况),而且代码可读性会严重降低...解决起来其实很简单,我当前这个项目的缩写是 GM,于是我建了一个叫 GMConstants Class,把所有之前全局变量都放到这里,写成 static let 形式。...---- 布尔标记 刚刚提到不建议以整合常量方式来整合变量,不过后续又发现之前会用这样一种方式来处理逻辑:先写一个值为 false 布尔变量,以此作为一种标记,后续根据情况来不断地修改该值为...虽然目前认为这种方式并不是优雅写法,因为这样一个布尔标记作用范围太大了,虽然写代码时候知道,某种情况 true,另一种情况 false,以后修改时候

66110
  • Swift 项目 - Xib | StoryBoard 多人协作技巧

    这并不应该是Storyboard锅,仅仅是使用者对工具滥用! 没错,就是滥用,无论是Storyboard也好,纯代码也罢,它们本质都是工具,工具本身没有正义或邪恶,影响工具是使用者。...每个模块独立Storyboard image.png 每个Storyboard只应该有一个主VC和同页子VC,主VC不应存在2以上 image.png 一个项目中,Storyboard不该是孤立存在...这样我们可以功能图标的CollectionView代码放到这第一个子控制器上,CollectionViewDelegate、CollectionViewDataSource等代码也由子控制器实现...通过 Container View 创建ChildViewController如何与主ViewController参或互相调用?...它本质是一个继承自NSObject子类,我们完全可以把它当成一个小功能模块控制器。

    2.1K20

    Swift 基本语法02-let和var

    一个iOS开发初级菜鸡.png Swift 基本语法01-Swift简介 Swift 基本语法03-"if let"和"guard let" Swift 基本语法04-"switch"和"for"...Swift 基本语法05-"String" Swift 基本语法06-数组和字典 1.let(常量)和var(变量)可选项默认值 1.1 let(常量)可选项没有默认值 1> 常量在使用之前要被初始化...)可选项默认值为nil 1> 如果变量没有改变,只会警告我们把var改变为let // Variable 'x' was never mutated; consider changing to...是一个简单三目运算符 * 如果有值,使用值 * 如果没有值,使用'??'后面的值代替 */ print((x ?? 0) + (y ??...`优先级最低 * 如果'name'有值,最后执行'??'运算符,因此输出结果为"老王" * 使用时候,建议用'( )''??'

    79160

    View Controller编程指南

    UIViewController类定义了管理你View,处理事件,从一个ViewController转换到另一个ViewController,以及协调你应用程序其他部分方法和属性。...添加自定义变量会创建一个类似于图所示关系,其中ViewController具有对数据引用以及用于呈现该数据View。 你工作是在两者之间来回移动数据。...ViewController可以存储它接收任何数据副本,以便更新View,文档仍然拥有真实数据。 交互 ViewController是响应者对象,能够处理响应者链中事件。...容器型ViewController一个或多个子ViewController内容与可选自定义View混合在一起,以创建其最终界面。...没有ViewController应该有关于另一个ViewController内部工作或View层次结构知识。

    1.3K20

    KVO 正确使用姿势进阶及底层实现你要知道KVC、KVO、Delegate、Notification都在这里

    KVO还有一个可能会产生错误地方,在看下一个栗子之前有一点需要说明,有时候我们可能在一个视图中监听很多模型对象,当然了可以按照我们常用通过keyPath字符串来判断产生回调具体是哪个属性值,如果监听很多属性值...答案是context,初学者经常直接context置为nil,context才是KVO保证正确运行关键。...可能第一感觉还是设置为NSString类型,这样仍然可能会产生冲突,苹果推荐做法是创建一个静态变量然后使用该静态变量地址作为context,通过这样方法就能够保证context独一无二。...子视图控制器 ViewController不监听模型,包括一个按钮用于创建SubViewController并展示 DisplayViewController还是之前栗子 SubViewController...正确使用姿势应当如下: 使用静态变量地址作为context,并且为每一个监听属性都创建一个context,尽量不使用keyPath作为区分条件。

    1.6K80

    iOS 中block结构简单用法 原

    自从block出现之后,很多API都开始采用这样结构,由此可见,block确实有许多优势存在,这里一些简单用法总结如下: 一、如何声明一个block变量 我们通过^符号来声明block类型,形式如下...: void (^myBlock)(); 其中第一个void是返回值,可以是任意类型,中间括号中^后面的是这个block变量名字,我把它命名为myBlock,最后一个括号中是参数,如果多参数,可以写成如下样式...int (^myBlock)(int a,int b) ; -(void)func:(myBlock)block ; 二、如何实现一个block 既然block可以被声明为变量,那么就一定可以实现它,就像其他类型变量赋值...注意:1、在上面的代码里 block1是一个对象,如果直接打印打印对象地址         2、block(),加上后面的括号才是执行block语句块 三、block中访问对象微妙关系 1、如果你在一个...注意:根据这个机制,如果我们block用来值,在block不用时,务必要置为nil,而在实现block方法里,务必要释放;我们通过代码来解释: 首先,创建三ViewController,为ViewController1

    57830

    iOS学习——内存泄漏检查及原因分析

    项目的代码很多,前两天老大突然跟我说项目中某一个ViewControllerdealloc()方法没有被调用,存在内存泄漏问题,需要排查原因,解决内存泄漏问题。...由于刚加入项目组不久,对出问题模块代码还不太熟悉,所以刚拿到问题时觉得很棘手,再加上作为一个iOS菜鸟,对内存泄漏排查方法和原因确实基本上不了解。...target:self 就增加了ViewControllerreturn count,如果你不将这个timer invalidate,别想调用dealloc。...2.2 ViewController代理delegate   一个比较隐秘因素,你去找找与这个类有关代理,有没有强引用属性?...2.3 ViewController中Block 这个可能就是经常容易犯一个问题了,Block体内使用实例变量也会造成循环引用,使得拥有这个实例对象不能释放。

    2K70

    编码篇-Block里面的小天地

    variables,capture 过来变量,block 能够访问它外部局部变量,就是因为这些变量(或变量地址)复制到了结构体中。...简单地讲,如果一个block中没有引用外部变量并且没有被其他对象持有,就是NSConcreteGlobalBlock。...NSConcreteMallocBlock其实就是一个block被copy时,生成NSConcreteMallocBlock,不过值得注意是NSConcreteMallocBlock会持有外部对象。...clang 提供一个命令,可以 Objetive-C 源码改写成 c 语言,借此可以研究 block 具体源码实现方式。...typedef void(^Blo)(NSString *s1,UIColor *c); 逆向值 前面我们已经知道Blcok是一个匿名函数,同时也是一个指针,那么使用Block就可以弥补在iOS中函数传递功能

    62020

    iOS,面试必看,最全梳理

    简述类目category优点和缺点 优点: 不需要通过增加子类而增加现有类行为(方法),且类目中方法与原始类方法基本没有区别; 通过类目可以庞大一个方法进行划分,从而便于代码日后维护、更新以及提高代码阅读性...比如说,外部一个模型过来,那么我会直接重写Setter方法,当模型传过来时,也就是意味着数据发生了变化,那么视图也需要更新显示,则在赋值新模型同时也去刷新UI。...如一个TableView中有10单元格,屏幕最多显示4,实际上iPhone只为其分配4单元格内存,没有分配10,当滚动单元格时,屏幕内显示单元格重复使用这4内存。...线程有自己堆栈和局部变量线程之间没有单独地址空间,一个线程死掉就等于整个进程死掉,所以多进程程序要比多线程程序健壮,但在进程切换时,耗费资源较大,效率要差一些。...,先让A修改,然后提交到服务器,然后B更新下来,再进行修改; 2.服务器上项目文件Xcodeproj,仅让一个人管理提交,其他人只更新,防止文件发生冲突。

    1.2K30

    iOS两年前面试题总结,现在你掌握了嘛?

    简述类目category优点和缺点 优点: 不需要通过增加子类而增加现有类行为(方法),且类目中方法与原始类方法基本没有区别; 通过类目可以庞大一个方法进行划分,从而便于代码日后维护、更新以及提高代码阅读性...比如说,外部一个模型过来,那么我会直接重写Setter方法,当模型传过来时,也就是意味着数据发生了变化,那么视图也需要更新显示,则在赋值新模型同时也去刷新UI。...如一个TableView中有10单元格,屏幕最多显示4,实际上iPhone只为其分配4单元格内存,没有分配10,当滚动单元格时,屏幕内显示单元格重复使用这4内存。...线程有自己堆栈和局部变量线程之间没有单独地址空间,一个线程死掉就等于整个进程死掉,所以多进程程序要比多线程程序健壮,但在进程切换时,耗费资源较大,效率要差一些。...先让A修改,然后提交到服务器,然后B更新下来,再进行修改; 2.服务器上项目文件Xcodeproj,仅让一个人管理提交,其他人只更新,防止文件发生冲突。

    1.2K20

    iOS面试题梳理(三)

    比如说,外部一个模型过来,那么我会 直接重写Setter方法,当模型传过来时,也就是意味着数据发生了变化,那么视图也需要更新显示,则在赋值新模型同时也去刷新UI。...如一个TableView中有10单元格,屏幕最多显示4,实际上iPhone只为其分配4单元格内存,没有分配10,当滚动单元格时,屏幕内显示单元格重复使用这4内存。...线程有自己堆栈和局部变量线程之间没有单独地址空间,一个线程死掉就等于整个进程死掉,所以多进程程序要比多线程程序健壮,但在进程切换时,耗费资源较大,效率要差一些。...先让A修改,然后提交到服务器,然后B更新下来,再进行修改; 2.服务器上项目文件Xcodeproj,仅让一个人管理提交,其他人只更新,防止文件发生冲突。...并给出三不同例子: 一个定义为volatile变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量值了。

    1.4K71

    问题——持续更新

    通过指针调用函数: 指针名 = &函数名 (这是给函数指针赋值)  拷贝、加括号、换名、加星号 __block关键字  在block中要使用零时变量 block值  反向值 适配中分页控件和滚动视图相结合...  解决:一个是看偏移,一个是看当前页 2.获取当前屏幕大小CGRect frame = [UIScreen mainScreen].applicationFrame 解决横屏适配问题: 解决...计算时间差时候出现负数符号?  解决:调用方法时两参数有问题,可能是反了,以至于出现了负数。...(之前做法都是创建一个工程)     解决:ViewController头文件导入到AppDelegate中,按照以前写法,创建控制器对象,再创建导航控制器对象,并将其作为当前窗口根视图控制器...Post 用系统自带和第三方库区别   请求体???     答:系统中请求体是一个拼接起来字符串,第三方AF中参数是一个字典. 如何查看即将输出数据数据类型?

    1.2K20

    iOS 面试策略之经验之谈-架构选择

    这是本系列最后一个章节,主要是一些进阶内容提问和解答,考察是开发者功力深厚 [1240] 之前一个 iOS 开发者成长到一定阶段,就会遇到瓶颈,解决方法是熟悉设计模式。...ViewController 因为两部分高度耦合,它将处理交互、视图更新、布局、Model 数据获取和修改、导航等几乎所有操作。 难以进行测试。...理论上来说,MVC 是希望视图层就是单纯 UIView,或者 UIViewController 只负责 UI 更新交互,不涉及业务逻辑和模型更新。...MVC 中间层 Controller 持有视图和模型,主要起到一个组装和连接作用,通过传递参数和实例变量来直接完成所有操作。...MVC,MVP,MVVM 这三种结构都是以视图为驱动架构,三种皆为用户交互和视图更新为主要服务目标。它们一个共同缺点是没有涉及界面之间跳转——即路由设计。 7.

    1K30

    iOS对UIViewController生命周期和属性方法解析

    ,这里面有一点需要我们注意,如果我们需要向controller中视图进行值设置,通过以下方法得到Controller中,视图还没有被初始化创建出来:  ViewController2 * viewController2..."]; 我们可以在ViewController2storyBoard中拉一个label,然后关联到头文件中,如下打印,会发现我们得到controller时,里面的视图对象并没有进行创建: ViewController2...1、ViewController直接在StoryBoard中进行跳转值         在StoryBoard中进行界面跳转是十分方便,我们在StoryBoard中拉入两ViewController...,在一个上面添加一个按钮,点住按钮按住control,鼠标拉到第二controller上,会出现如下跳转选项: ?...我们可以把它连接到viewController2中一个按钮上: ? 这样,当我们点击viewController2中按钮时,就会返回到我们第一个ViewController1中了。

    2.9K20

    一道高级iOS面试题(runtime方向)

    问题1:print 是实例方法,但是并没有哪里调用了 [MNPerson alloc]init] ?? 问题2: 为啥打印了 viewController?...image-20190320211003867 person变量指针,执行 MNPerson 实例对象 实例对象本身是结构体,之前指向他,等价于执行结构体一个成员 结构体一个成员是isa,...] 调用print 方法,不需要关心有没有成员变量 _name,所以可以理解为,cls == isa 函数调用,是通过查找isa,其实本质,是查找结构体前八字节; 前八字节正好是isa,所以这里可以理解为...image-20190320214534204 _name本质,先找到 isa,然后跳过 isa 字节,就找到 _name这个变量 所以上图输出 self.name = 666 最早没有 test...(temp, @selector(ViewDidLoad)) 所以等于有局部变量 - 结构体 temp, 结构体地址 = 他一个成员,这里一个成员是self ?

    60230

    浅谈MVC

    因为之前是搞.net开发了,有过四年asp.net开发经验,虽然说不上钻得有多深,基本各个方面也都接触到了。之前也把MVC往asp.net开发上靠过,试着去解耦各层依赖,但是终究扯不清楚。...但是对于一个后台处理逻辑比较复杂程序而言,其实以上三部分也只是这个系统中一部分——前台展示与较浅层次业务逻辑处理部分,但是后台数据处理部分没有涉及到,这也是困惑了我近两年一个疑问,与传统三层架构设计...,但是在实际开发中,还是发现有不少问题需要注意,例如最近遇到一个问题就是:有一个较复杂界面,需要根据上半部分子视图中日期变化,动态更新中部表视图数据,界面支持日期一栏左右滑动,以切换日期,日期切换后需要同步更新表视图数据...;另外界面底部还有命令按钮视图,支持表数据提交操作; 一开始笔者这个界面进行了分拆,分为四View来实现,且每个View对应自己ViewController:顶部一个是导航NavView,一个日期切换...一旦这样设计,数据交换逻辑就简单多了,可以所有网络请求都在一个ViewController中集中处理,各个子视图只管各自子控件布局、显示。

    93820
    领券