Ok, donc c'est assez bizarre; avant de passer à la version finale de GMseed de Xcode mes boutons fonctionnaient parfaitement bien ... Maintenant, je ne peux même pas les faire sur une échelle super simple sans que le programme plante sur click.UIButton se bloque sur Cliquez
L'aspect le plus bizarre absolu est que cela fonctionne QUELQUES de temps, mais comme 85%, il se bloque juste; et quand cela fonctionne, il va s'écraser après une utilisation intensive.
Voici mon code (dépouillé à la mise en œuvre du bouton plus simple que je pouvais penser):
@interface TESTViewController()
{
UIButton *button;
}
@end
@implementation TESTViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self addButton];
[button addTarget:self action:@selector(buttonPressed)
forControlEvents:UIControlEventTouchDown];
}
- (void)addButton
{
button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 80, 45)];
[button setTitle:@"CLICK" forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor blackColor]];
[self.view addSubview:button];
}
- (void)buttonPressed
{
NSLog(@"WORKED");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
TESTViewController *test = [[TESTViewController alloc] init];
[self.window addSubview:test.view];
return YES;
}
J'ai essayé de créer le bouton dans la fonction init, viewDidLoad - ne fonctionne toujours, bien que viewDidLoad semble fonctionner un peu plus souvent ...
J'ai essayé -(void) addButton:(UIButton*)button
ainsi en utilisant:
[button addTarget:self action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchDown];
- Pas de différence.
Je suis à perte totale. J'ai essayé de le chercher ici sur les forums, mais malheureusement, la plupart d'entre eux se réfèrent à la programmation avec IBActions.
L'erreur que j'obtiens est un mauvais accès Donc, je suppose que lorsque le bouton est cliqué, il n'accède pas réellement à la fonction buttonPressed mais quelque chose d'autre entièrement ... Je n'ai aucune idée de pourquoi ce serait le cas. ..
Merci pour toute aide!
pourquoi n'utilisez-vous pas 'UIControlEventTouchUpInside'? –
Je ne pense pas que le problème avec UIControlevent ce problème pour relase Button Object juste donner la propriété 'UIBUtton' et' Systhsize' et utiliser Self.button –
collez l'erreur comme il est montré dans la console. –