我需要在加载视图ClassB.m后访问ClassA.m中变量的值,但好像当我将视图从ClassA切换到ClassB时,类A的变量被销毁。在ClassA中维护这个变量的最好方法是什么?在Java中,这将很容易,以静态变量的形式。但是,我不知道Objective-C中有这样的概念。如果你会推荐使用“extern”变量,我试过了,那个变量类型在视图切换之后似乎也被破坏了?也许我错误地实施了,但你有什么想法?在第一个视图关闭后,如何在第二个视图中维护变量的值?如何在切换视图控制器后保持变量的值?
1
A
回答
2
您可以在新的viewcontroller中创建属性,并将当前viewcontroller的变量传递给new。参见exp。
DetailsViewController *detailsviewcontroller = [[DetailsViewController alloc] initWithNibName:@"EventDetailsViewController" bundle:nil];
eventdetailsviewcontroller.event = localvar;
[self.navigationController pushViewController:detailsviewcontroller animated:YES];
1
暂时忘掉静态变量。这个想法是,你想要一个对象保持对这些变量的引用,不管是哪个视图。这就是mediator pattern的用途。基本上你想拥有一个控制器控制器(使它成为一个singelton),并且该控制器可以保留对视图来来去去时要保留的所有变量的引用。
通过这种方式,您可以将您的代码解耦,这意味着可以减少可能不相关的控制器之间的依赖关系并减少胶水代码。
我也给出了类似的回答here。
-2
您可以在Objective-C中使用静态变量。这是Test.m文件中的一个示例
static NSMutableDictionary* single = nil;
@implementation Test
@end
相关问题
- 1. StoryBoard - 视图控制器如何切换?
- 2. 切换视图控制器
- 3. 如何在切换到其他视图控制器时保持NSArray可用
- 4. iOS:在当前模态视图控制器后面切换视图控制器?
- 5. 如何在切换视图控制器时保留UIDatePicker和UITextField值?
- 6. 从变量切换XIB到视图控制器
- 7. 在视图控制器之间切换
- 8. 保持视图在导航控制器
- 9. NSMutableArray的持续性,同时切换视图控制器
- 10. 如何在iPad上的视图控制器之间切换?
- 11. 如何在iOS开发中切换新的视图控制器?
- 12. IIViewDeckController切换视图 - 控制
- 13. Objective-C切换视图控制器
- 14. 高效切换视图控制器
- 15. 如何为切换tabbar视图控制器添加转换
- 16. 如何在两个视图控制器之间切换
- 17. 如何在这种情况下切换视图控制器
- 18. 如何在Xcode 5中切换视图控制器?
- 19. 如何在iOS中切换视图控制器?
- 20. 如何在视图控制器之间切换
- 21. 如何使用CATransition在Cocoa中切换视图控制器?
- 22. 如何从Ember.TextField的视图内的HTML变量切换值?
- 23. 如何从简单的视图控制器切换到标签栏控制器?
- 24. 如何在加载视图控制器作为子视图时保持对我的根视图的控制?
- 25. 如何故事板切换容器视图控制器?
- 26. 会话变量不保持跨不同控制器的值
- 27. UInavigation控制器不工作切换视图控制器到tableviewcontroller
- 28. 如何从不同视图切换到相同的控制器?
- 29. 如何切换到导航控制器管理的视图?
- 30. 从一个视图控制器模式切换到另一个视图控制器后,视图完全黑色