Как вызвать customview по действию кнопки?

Я создал демонстрационный проект, в котором есть кнопка добавления. При действии кнопки я вызываю настраиваемое представление. В этом настраиваемом представлении я добавил окно выбора, панель инструментов и кнопку на панели. При нажатии кнопки я вызываю это настраиваемое представление. Я использовал этот код ...

-(IBAction)Picker{

mpv_object  = [[MyPickerView alloc] initWithNibName:@"MyPickerView" bundle:nil];
[self.view addSubview:mpv_object];
[mpv_object release];

}

Но я даю ошибку, которую я привел ниже ...

Похоже,

-(IBAction)Picker{

mpv_object  = [[MyPickerView alloc] initWithNibName:@"MyPickerView" bundle:nil];
[self.view addSubview:mpv_object];
[mpv_object release];
- это _2_ подкласс. _3_ не является методом, существующим в _4_ подклассах. Этот метод существует в _5_ подклассах. Вот что означает сообщение об ошибке.


person iRavan12    schedule 26.09.2011    source источник


Ответы (3)


MyPickerView предполагает, что суперкласс MyPickerView не знает, что такое UIView, потому что UIView не знает этого метода (он существует в initWithNibName:bundle).

person Matthew Gillingham    schedule 26.09.2011

Правильный способ сделать это будет примерно так

person Alan Zeino    schedule 26.09.2011

Я вставил код из моих рабочих образцов и, следовательно, имя переменных. Надеюсь, ясно, что перо, которое вы создадите здесь, называется DatePickerSliderViewNew.

UIView *dpView;
NSArray *nibViews;
nibViews =  [[NSBundle mainBundle] loadNibNamed:@"DatePickerSliderViewNew" owner:self options:nil];
dpView = [ nibViews objectAtIndex: 0];
int outside = CGRectGetMaxY(self.view.bounds);
dpView.frame = CGRectMake(0, outside, 320, 260);
[self.view addSubview:dpView];
[UIView beginAnimations:nil context:nil];
dpView.frame = CGRectMake(0, outside - 260, 320, 260);
[UIView commitAnimations];
person Rahul Choudhary    schedule 26.09.2011
comment
2011-09-26 09: 49: 00.236 Web [440: 207] - [MyPickerView initWithNibName: bundle:]: неопознанный селектор отправлен в экземпляр 0x4b4dcb0 2011-09-26 09: 49: 00.287 Web [440: 207] * Завершение работы приложения из-за неперехваченного исключения 'NSInvalidArgumentException', причина: '- [MyPickerView initWithNibName: bundle:]: неопознанный селектор отправлен в экземпляр 0x4b4dcb0' * Стек вызовов при первом вызове: (0 CoreFoundation 0x00daebe9 exceptionPreprocess + 185 1 libobjc.A.dylib 0x00f035c2 objc_exception_throw + 47 2 CoreFoundation 0x00db06fb - [NSObject (NSObject) doesNotRecognizeSelector:] + 187 3 CoreFoundation 0x00d20366 __ пересылка CoreFoundation 50x02_Coreffward_foundation_22 + 966_предупреждение_222 Веб 0x0000223a - [Средство выбора WebViewController] + 102 6 UIKit 0x002b7a 6e - [UIApplication sendAction: to: from: forEvent:] + 119 7 UIKit 0x003461b5 - [UIControl sendAction: to: forEvent:] + 67 8 UIKit 0x00348647 - [UIControl (Internal) _sendActionsForEvents: withEvent:] + 52700 9 UIKitf [UIControl touchesEnded: withEvent:] + 458 10 UIKit 0x002dc0d1 - [UIWindow _sendTouchesForEvent:] + 567 11 UIKit 0x002bd37a - [UIApplication SendEvent:] + 447 12 UIKit 0x002c2732 _UIApplicationHandleEvent + 7576 13 GraphicsServices 0x016e4a36 PurpleEventCallback + 1550 14 CoreFoundation 0x00d90064 <сильный> CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52 15 CoreFoundation 0x00cf06f7 __CFRunLoopDoSource1 + 215 16 CoreFoundation 0 x00ced983 __CFRunLoopRun + 979 17 CoreFoundation 0x00ced240 CFRunLoopRunSpecific + 208 18 CoreFoundation 0x00ced161 CFRunLoopRunInMode + 97 19 GraphicsServices 0x016e3268 GSEventRunModal + 217 20 GraphicsServices 0x016e332d GSEventRun + 115 21 UIKit 0x002c642e UIApplicationMain + 1160 22 Веб 0x00001f80 основной + 102 23 Веб 0x00001f11 старт + 53) Terminate вызывается после выброс экземпляра 'NSException' Что в этом за ошибка? - person Rahul Choudhary; 26.09.2011