UILabelにNSStringを表示できません。以下は、表示されているプログラムの一部です。ボタンがヒットすると、それらの関数が呼び出されます。UILavelのテキストをUINavigationControllerに表示できません
これは、ボタンが押されたときにUIAlertによって呼び出される関数です。ナビゲーションコントローラの2番目のビューにあります。 "location"はNSStringです。
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0)
{
NSString *newString = [[NSString alloc] initWithString:location];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:newString forKey:@"keyForLocation"];
FirstViewController *newObject = [[FirstViewController alloc] init];
[newObject updateCurrentLocationLabel:nil];
}
else {
}
}
これは、ベースビューのビューコントローラのヘッダと実装ファイルです。それはUILabelと一緒です。
ヘッダファイル
@interface FirstViewController : UIViewController {
IBOutlet UILabel *currentLocationLabel;
}
@property (nonatomic, retain) UILabel *currentLocationLabel;
-(IBAction) updateCurrentLocationLabel:(id) sender;
あなたが最初[[NSUserDefaults standardUserDefaults] synchronize]
を呼び出す必要があり、実装ファイル
- (IBAction) updateCurrentLocationLabel:(id) sender {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *myString1 = [prefs stringForKey:@"keyForLocation"];
currentLocationLabel.text = [NSString stringWithFormat:@"%@", myString1];
}
OK、どうすれば問題を解決できますか?私が使うはずのメソッドは?私は本当に申し訳ありませんが、私は初心者です、私はこれについてのチュートリアルを探しますが、そこに良いものはありません。 – Jovi
'[(FirstViewController *)self.navigationController.topViewController updateCurrentLocationLabel:nil];' - しかし、オブジェクトの向きとメモリ管理に関する入門的な資料を読むことをお勧めします。初心者レベルのiOSブックでは、あなたのコードは、あなたがまだ非常に基本的なことを理解していないことを示しています。 – omz
私はupdateCurrentLocationLabelにNSLogステートメントを置いていましたが、デバッガのconsolerにそのステートメントがあるようですので、プログラムにメソッドがあると仮定できますか? とはい!私は再び本を読んでいる。明らかに私はいくつかのものを理解していない。 – Jovi