Ниже у меня есть код, который просто скрывает кнопку через систему делегирования в 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
.
Изменить: спасибо всем, кто разместил, ваш код отлично работал