通常,我会像这样调用另一个类方法: MyClass *class = [[MyClass alloc] init]; [类我的方法];
但问题是,它会调用 ViewDidLoad。这对我来说是个问题。
有没有办法在不调用 ViewDidLoad 的情况下访问另一个方法中的属性或调用另一个方法中的类?
谢谢!
Edit1:那么你是说如果我这样做它就不会调用我的 VDL?:
MyClassB *classB = [[[MyClassB alloc] init] autorelease];
[classB.pauseButton setHidden:NO];
另外,当我调用一个会触发 ViewDidLoad 的方法时怎么样?
最佳答案
当然;重构 myMethod
以不调用 viewDidLoad
。
也就是说,如果你调用方法a
并且方法a
调用了b
,但是你不想调用b
,那么就需要修改a
的实现,使其有时不调用b
。通过修改 a
或在包含不调用 b
的 a
的类上创建新方法 c
。
如果问题是你在系统框架中调用了一个方法,而它在你不想要的时候调用了 viewDidLoad
,那么答案是你真的不能按照你的想法去做你想做什么。但这只是一个症状;真正的答案是您的应用架构需要重新审视以更好地适应系统框架。
Edit1: So are you are saying that if I do this it will not call my VDL?:
MyClassB *classB = [[[MyClassB alloc] init] autorelease];
那是创建一个新的 MyClassB
实例。如果屏幕上已经显示了一个实例,那么您很可能不需要新实例,是的,这就是调用 viewDidLoad
的原因。
要么创建一个可以指向 classB
的现有实例的实例变量,要么以其他方式获取该实例;把它卡在应用程序委托(delegate)或其他东西上。
总的来说,听起来您对实例化一个对象的含义与简单地引用一个对象的含义以及所有这些如何适应应用程序创建的 UIKit 模型感到困惑。在你掌握它之前,这有点棘手。研究展示如何使用 View Controller 的许多示例中的一些示例,因为它们可能已经解决了类似的问题。
关于ios - 在不调用 ViewDidLoad 的情况下从另一个类访问方法或属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205429/