我想从另一个控制器中更改标签的文本,就像定义一个全局变量一样。有没有一种方法可以制作全球标签
回答
通过引入自动引用的与iOS 5计数,这迫使特定的编程规则和限制,某些编程结构和公认的做法是不再可能。 extern的使用是链接器不满意的基于C的指令之一。事实上,如果您尝试使用启用了ARC的功能,您会遇到链接错误。
但是,iOS 5仍然可以使用全局变量,您只需使用#define指令即可。
以下步骤演示了使用全局变量的一种可能解决方案。
1)定义一个局部变量:
NSString * gvar;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
2)初始化全局变量:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
gvar = [[NSString alloc] initWithString:@"Name1"];
return YES;
}
3)导入在此的AppDelegate文件BOT h你的ViewControllers。
4)分配GVAR到的UILabel在你的第一个视图控制器:
gvar = [self.songArray objectAtIndex:indexPath.row];
一旦你:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.label.text= gvar;
}
5)从你的第二个视图控制器改变其值回到之前的viewController,你的labe我会展示新的文字。
我正在试图用UILabel来做到这一点。它不断告诉给我和错误。我不确定为什么这不起作用 - 这对我有意义。 – 2015-06-23 04:20:14
有多种方法可以做到这一点。不过,您可以更具体地说出您的问题。
您可以让您的标签可以被其他视图控制器访问。这样做,您需要知道从哪里访问标签的拥有视图控制器。
您可以在UIApplicationDelegate的子类中存储对标签的引用,并使用[[UIApplication getSharedApplication]委托]访问该标签并从任何地方访问它。如果你这样做,不要忘记在标签被销毁时不要忘记该参考。但是,如果不知道你想达到什么以及为什么,我不能说这是否是可取的,使得从其视图控制器外部可访问的UILable对象。很可能它不是。
定义和在AppDelegate中
创建其财产或Alloc的UILabel现在使用该标签在任何地方ü要在整个应用程序
AppDelegate *objAppDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[self.view addSubView:objAppDelegate.label] // your gobal label added
更改其文本的任何地方
[objAppDelegate.label setText:@"New Text"];
一)将指向标签的指针传递给控制器B并使用它来更改文本。
b)定义一个协议并在控制器B中定义一个委托成员。在控制器A(拥有标签)中实现委托方法并设置作为委托方法参数传递的文本。调用控制器B中的委托方法,并将要设置的文本传递给标签。
c)注册控制器A作为某些通知的观察者。在控制器B 中发布通知并向用户信息字典添加文本。在控制器A中实现一个方法,该方法接收通知并设置用户信息字典中传递的文本。
b)大部分时间是最合理的。 a)不干净。 c)是一种矫枉过正。
我觉得你有更好的使用协议做
- 1. 有没有一种方法可以将css页面作为标签的样式?
- 2. 有没有一种方法可以完全格式化C#double?
- 3. 有没有一种方法可以完全禁用pixman
- 4. 有没有一种方法可以在<img>标签上拥有@ url.Action
- 5. 有没有一种方法可以使用书签排序gmail?
- 6. 有一种方法可以删除所有这个标签?
- 7. 有没有一种干净的方法可以在Hudson中删除svn标签
- 8. 有没有一种方法可以在里面使用img来定位标签?
- 9. 有没有一种方法可以区分JavaScript中的鼠标?
- 10. 有没有一种方法可以为{{render}}指定控制器?
- 11. 有没有一种方法可以推导lambda的签名作为mpl序列?
- 12. 有没有一种方法可以保存JavaScript DOM操作?
- 13. 有没有一种方法可以使用单个传球排序点?
- 14. 有没有一种方法,以全球所有navigtion栏后退按钮“返回”的标题变化
- 15. 有没有一种方法可以强制执行特定方法签名的方法?
- 16. 有没有一种方法可以禁用制表符键操作?
- 17. Java中有没有一种方法可以从控制台调用方法?
- 18. 有没有一种方法可以定义一个全局变量,它可以从类方法访问?
- 19. 有没有一种方法可以让WiX在每种情况下抑制ICE
- 20. 有没有一种方法可以一次使用Sequelize
- 21. ScalaTest in sbt:有没有一种方法可以在没有标签的情况下运行单个测试?
- 22. 有没有一种可行的DRM方法可以防止录制最终流?
- 23. JFreeChart:有没有一种方法可以在XYPlot中的两行中绘制长刻度线标签
- 24. django中有没有模板标签可以制作ast.literal_eval?
- 25. 有没有一种方法或标签可用来居中任何HTML元素?
- 26. 有没有一种方法可以禁用PHP超级全局的autosuggest?
- 27. 有没有一种方法可以安全地引用Javascript多维数组?
- 28. 有没有一种方法可以从全局levle上的webpack中排除node_modules?
- 29. 有没有一种方法来嵌套complexTypes没有包装标签?
- 30. 有没有一种方法可以使动作在Selenium IDE中可选?
您是如何解决这个问题的? – 2012-07-25 12:39:52