いつも質問して申し訳ありませんが、私のアプリでは、3 つの UILabels と 1 つの UIImageview の隠しプロパティが別のページ (設定ページ) の UISwitchs を介して YES または NO であるかどうかを切り替えることができます。奇妙な部分は、非表示にしないと宣言されている場合でも、UILabels の 1 つが非表示になっていることです。これが設定ページの私のコードです。
- (IBAction)changeswitch1 {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (artworkswitch.on)
[prefs setInteger:1 forKey:@"AWKey"];
else
[prefs setInteger:0 forKey:@"AWKey"];
}
- (IBAction)changeswitch2 {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (titleswitch.on)
[prefs setInteger:1 forKey:@"TKey"];
else
[prefs setInteger:0 forKey:@"TKey"];
}
- (IBAction)changeswitch3 {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (artistswitch.on)
[prefs setInteger:1 forKey:@"AKey"];
else
[prefs setInteger:0 forKey:@"AKey"];
}
- (IBAction)changeswitch4 {
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (volumeswitch.on)
[prefs setInteger:1 forKey:@"VKey"];
else
[prefs setInteger:0 forKey:@"VKey"];
}
これらはすべて、IB で 4 つのスイッチの「値の変更」アクションとして設定されます。
メインページのコードはこちら
if ([prefs integerForKey:@"AWKey"] == 1)
currentArtwork.hidden = NO;
else if ([prefs integerForKey:@"AWKey"] == 0)
currentArtwork.hidden = YES;
if ([prefs integerForKey:@"TKey"] == 1)
currentSong.hidden = NO;
else if ([prefs integerForKey:@"TKey"] == 0)
currentSong.hidden = YES;
if ([prefs integerForKey:@"AKey"] == 1)
currentArtist.hidden = NO;
else if ([prefs integerForKey:@"AKey"] == 0)
currentArtist.hidden = YES;
if ([prefs integerForKey:@"VKey"] == 1)
volumeview.hidden = NO;
else if ([prefs integerForKey:@"VKey"] == 0)
volumeview.hidden = YES;