我想從另一個控制器中更改標籤的文本,就像定義一個全局變量一樣。有沒有一種方法可以製作全球標籤
回答
通過引入自動引用的與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