1

在加载视图 ClassB.m 后,我需要访问 ClassA.m 中变量的值,但似乎当我将视图从 ClassA 切换到 ClassB 时,A 类中的变量被破坏了。在 ClassA 中维护这个变量的最佳方法是什么?在 Java 中,这将是相当容易的,以静态变量的形式。但是,我不知道 Objective-C 中有这样的概念。如果您建议使用“extern”变量,我试过了,并且在视图切换后该变量类型似乎也被破坏了?也许我实施不正确,但你的想法是什么?关闭第一个视图后,如何在第二个视图中保持变量的值?

4

3 回答 3

2

您可以在新视图控制器中创建属性并将当前视图控制器的变量传递给新的。见经验。

    DetailsViewController *detailsviewcontroller = [[DetailsViewController alloc] initWithNibName:@"EventDetailsViewController" bundle:nil];
eventdetailsviewcontroller.event = localvar;
[self.navigationController pushViewController:detailsviewcontroller animated:YES];
于 2013-09-28T04:16:57.273 回答
1

现在忘记静态变量。这个想法是您希望一个对象保持对这些变量的引用,而不管哪个视图处于打开状态。这就是中介者模式的用途。基本上,您希望拥有一个控制器控制器(使其成为单例),并且该控制器可以在视图来来去去时保留对您想要保留的所有变量的引用。

这样你就可以解耦你的代码,这意味着减少可能不相关的控制器之间的依赖关系并减少胶水代码。

我在这里也给出了类似的答案。

于 2013-09-28T04:30:12.453 回答
-2

您可以在 Objective-C 中使用静态变量。这是 Test.m 文件中的一个示例

static NSMutableDictionary* single = nil;

@implementation Test

@end
于 2013-09-28T04:45:45.570 回答