UIButton и UIPicker - PullRequest
       4

UIButton и UIPicker

1 голос
/ 24 июня 2010

Есть ли причина, по которой добавление UIPicker в представление может как-то лишить программно созданную кнопку его функциональности?Я изначально создал UIButton, чтобы перевести меня на другую точку зрения, и все было хорошо.Затем я добавил UIPicker к тому же представлению с целью выбора нескольких ключевых полей, которые затем можно было бы передать в представление, к которому ведет UIButton.К сожалению, кажется, что я как-то сломал свою кнопку в процессе добавления сборщика.

Вот экземпляр кнопки:

switchToGame = [UIButton buttonWithType:UIButtonTypeRoundedRect];
switchToGame.frame = CGRectMake(140,250,100,100);
[switchToGame setTitle:@"Play God" forState:UIControlStateNormal];
[switchToGame setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[switchToGame addTarget:self action:@selector(playGame) forControlEvents:UIControlEventTouchUpInside];
[self.view insertSubview:switchToGame atIndex:0];

Метод playGame проверяет поля средства выбора, отправляет их в общий одноэлементный объект, а затем загружает вид игры как таковой:

Singleton *mySingleton = [Singleton sharedSingleton];

NSInteger numCellsRow = [theDataPicker selectedRowInComponent:0];
NSInteger aliveColorRow = [theDataPicker selectedRowInComponent:1];
NSInteger deadColorRow = [theDataPicker selectedRowInComponent:2];

UIColor * theAliveColor = [aliveColors objectAtIndex:aliveColorRow];
UIColor * theDeadColor = [deadColors objectAtIndex:deadColorRow];
NSInteger numCellsPerRow = [[cellRowOptions objectAtIndex:numCellsRow] intValue];

mySingleton.cellsPerRow = numCellsPerRow;
mySingleton.aliveColor = theAliveColor;
mySingleton.deadColor = theDeadColor;

[theAliveColor release];
[theDeadColor release];

GameController * viewController = [GameController alloc];
self.theViewController = viewController;
[self.view insertSubview:theViewController.view atIndex:1];
[viewController release];

Надеюсь, этих фрагментов кода достаточно, чтобы кто-то указал, где я сбился с пути, поскольку в данный момент я совершенно растерян.

1 Ответ

0 голосов
/ 13 июня 2012

Из любопытства, что произойдет, если вы замените:

[self.view insertSubview:switchToGame atIndex:0];

на

[self.view insertSubview:switchToGame atIndex:1];

и

[self.view insertSubview:theViewController.view atIndex:1];  

на

[self.view insertSubview:theViewController.view atIndex:0];

Надеюсь, это может привести к правильному упорядочиванию ваших просмотров, чтобы кнопка находилась сверху.Также поищите здесь отличную ссылку на addSubview и insertSubview:

Разница между addSubview и insertSubview в классе UIView

...