我的应用程序有一些标签(tabbar)。
在第一个标签中有UILabel,在第三个标签上有方法,链接到按钮。
我想从第三个按钮的方法改变UILabel的值(通过这些按钮启动)
以下是一些代码来说明所有内容:
第一页(使用UILabels) @implementation FirstViewController
// definition des accesseurs
@synthesize details;
@synthesize recapitulatif;
...
并且会改变UILabels的方法(具有实际功能,不注意那些方法;-))
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
//NSString *responseString2 = [NSString stringWithFormat:@"%s%@%s", "[", responseString, "]"]; // Pour ajouter les [] si y'en a pas autour de tout le contenu JSON, et on doit utiliser responseString2 au lieu de responseString à la ligne ci-dessous
NSArray *tableau = [responseString JSONValue];
[responseString release];
NSDictionary *dico = [tableau objectAtIndex:0];//NSDictionary *dico = [responseString JSONValue]; // sans [], on aurait fais ceci!
// Si cette condition est vérifiée, c'est que le token est recu. On vas alors relancer une requete pour avoir les données.
if ([dico objectForKey:@"token"]) {
[ [MySingleton sharedMySingleton] setAuth:[dico objectForKey:@"token"] ];
//affichage du message de confirmation de sauvegarde des mots de passe
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login et Mot de passe" message:@"Votre login et votre mot de passe sont enregistrés." delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert autorelease];
}
}
感谢您的阅读/帮助!
答案 0 :(得分:0)
添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(updateLabel:)
name:@"LABELUPDATENOTIFICATION"
object:nil];
在标签存在的类中,即第一个标签。
当使用更新的文本(NSString)对象通知后调用第三个按钮的方法(通过这些按钮启动)。
[[NSNotificationCenter defaultCenter] postNotificationName:@"LABELUPDATENOTIFICATION"
object:updatedStringLabelText]
在具有标签的类中实施以下通知方法。
- (void)updateLabel:(NSNotification*)notification
{
NSString *updatedText = (NSString*)[notification object];
[yourLabel setText:updatedText];
}
答案 1 :(得分:0)
最好在AppDelegate中声明NSString,你可以根据第三个标签中的按钮操作更改其值,并在第一个标签标签中指定值