Bellow我有一些代码只是通过Xcode中的委托系统隐藏了一个按钮。我相信这一切都有效但是当我将视图传回“leveSelector”视图时,委托无效,因此按钮不会显示为非隐藏状态。因此,我想应用一些NSUserDefaults
来保存按钮状态,这样当我在游戏后期回到'levelComplete'视图时,我希望按钮不被隐藏。
这里我有我正在使用的delegate
系统的代码:
这里我有levelComplete代码...... .H
#import <UIKit/UIKit.h>
#import "levelComplete.h"
#import "LevelSelector.h"
@interface levelComplete : UIViewController{
}
@property (nonatomic, strong) id<CustomDelegate> delegatePpty;
@end
的.m
@implementation levelComplete
@synthesize delegatePpty;
-(void)someAction
{
[self.delegatePpty hideUnhidebutton:YES];//Call the delegate method to execute
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self someAction]; // Here I call my action
}
@end
这里我有leveSelector代码......
·H
@protocol CustomDelegate <NSObject>
-(void)hideUnhidebutton:(BOOL)value;
@end
#import <UIKit/UIKit.h>
#import "levelComplete.h"
#import "LevelSelector.h"
@interface LevelSelector : UIViewController <CustomDelegate>{
}
@property (nonatomic, strong) UIButton *level1;
@end
的.m
@implementation LevelSelector
@synthesize level1;
-(void)hideUnhidebutton:(BOOL)value
{
[self.level1 setHidden:value];
}
因此,为了澄清我想将按钮保存为NSUserDefault
时保存按钮。
在这种情况下,我想隐藏的按钮称为level1
。
编辑:感谢所有发布的应用你的代码工作得很好
答案 0 :(得分:4)
您可以直接将值保存到NSUserDefaults
:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithBool:value]
forKey:@"SomeSensibleKey"];
您可以使用以下方法检查已保存的状态:
[[defaults objectForKey:@"SomeSensibleKey"] boolValue]
答案 1 :(得分:1)
Sapi的回答已经涵盖了您的评论我将如何加载NSUserDefaults
BOOL yourBoolValue = YES;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSNumber numberWithBool:yourBoolValue] forKey:@"YourVariableKey"];
最后一行已经是您想要的结果。 [NSUserDefaults standardUserDefaults]是一个单独的并且也是持久的,因此您可以在具有相同实例的每个上下文中创建它。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL restoredBoolValue = [[defaults objectForKey:@"YourVariableKey"] boolValue];
[self.level1 setHidden:restoredBoolValue];
Ant就是这样。 您基本上可以保存NSUserDefaults中的所有内容。只需查看Apple's reference。
答案 2 :(得分:1)
要将布尔值保存到用户默认值,您必须调用setBool方法:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"ButtonHiddenKey"];
从用户默认值(在init方法中)加载布尔值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
button.hidden = [defaults boolForKey:@"ButtonHiddenKey"];
还有一些消息可以存储其他类型的变量,例如setInteger,setFloat等等