2013-08-23 2 views
0

Custom View For PickerUIButton touchupinside действие ломает программу в раскадровке приложения

Я пытаюсь создать представление пользовательского Picker, связанное событие touchupinside моего класса PickerViewViewController.h, как несильно

- (IBAction)Done:(id)sender; 

добавил несилен в ом

- (IBAction)Done:(id)sender { 

NSLog(@"Done"); 

}

Добавлено вид на мое основное зрение, так как

PickerViewViewController *pic=[self.storyboard instantiateViewControllerWithIdentifier:@"Pickerview"]; 
[self.view addSubview:pic.view]; 

Custom Picker Instant Added

но когда я нажимаю кнопку сделать это сбоем, я сделал это перед использованием XIB легко, помочь?

+0

Вы не должны добавить вида другого контроллера представления к вашему представлению, не делая контроллер контроллером детского просмотра. Вопрос, однако, почему вы хотите добавить сборщика с другого контроллера, вместо того, чтобы просто добавить представление выбора на вид вашего главного контроллера? – rdelmar

ответ

1

Прежде всего попробуйте переименовать вашу функцию что-то вроде

- (IBAction)doneButtonPressed:(id)sender 

Done может быть зарезервирован системой для чего-то (не уверен, но это случилось со мной раньше)

Вы можете просто отказаться от раскадровки ... и сделать обычный ViewController с .xib :). На самом деле нет необходимости в ViewController. Просто сделайте UIView и .xib, связанные с вашим UIView.

Чтобы прикрепить .xib к UIView вы можете использовать:

+ (CustomViewName *)getNewCustomView { 
NSArray *xib = [[NSBundle mainBundle] loadNibNamed:@"CustomViewName" owner:nil options:nil]; 
for (NSObject *obj in xib) { 
    if ([obj isKindOfClass:[CustomViewName class]]) { 
     return (CustomViewName *)obj; 
    } 
} 
return nil; 
} 

и intialise это нравится:

CustomViewName *customView = [CustomViewName getNewCustomView]; 
customView.frame = CGRectMake(...); 
self.view addSubview:customView; 

также в файле .xib вы должны установить имя вашего класса. .. но на ВИДЕ не на владельце файла, как так:

enter image description here

+0

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

+0

Вы можете просто отказаться от раскадровки ... и создать обычный ViewController с .xib :) –

+0

Cant drop storyboard в текущем проекте на данном этапе может быть в следующем проекте. –

Смежные вопросы