Я загружаю приложение (через встроенную платформу) через плагин PhoneGap.
Теперь я пытаюсь передать текущий UIViewController в свойство parentViewController FlashizFacade объект.
Когда я запускаю свое приложение, я получаю эту ошибку в консоли отладки при назначении self:
2012-09-10 13:01:43.663 gTicketSales[2805:16a03] -[FlashizPlugin navigationController]: нераспознанный селектор отправлен экземпляру 0x91925e0
2012-09-10 13:01:43.665 gTicketSales[2805:16a03] ***WebKit отклонил неперехваченное исключение в webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate:
<NSInvalidArgumentException>
-[FlashizPlugin navigationController]: нераспознанный селектор отправлен экземпляру 0x91925e0
При назначении self.viewController:
2012-09-10 14:31:21.455 gTicketSales[3693:16a03] ***WebKit отклонил неперехваченное исключение в webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate:
<Wrong parentViewController specified>
При использовании немодального отображения parentViewController должен быть экземпляр UIViewController с назначенным допустимым navigationController
Я пробовал:
facade.parentViewController = self;
facade.parentViewController = self.viewController;
Мой файл .h
#import <Cordova/CDVPlugin.h>
#import <FlashizPaymentLib/FlashizFacade.h>
@interface FlashizPlugin : CDVPlugin <FlashizPaymentDelegate> {}
@property (nonatomic, retain) FlashizFacade* flashizFacade;
- (void) openFlashiz:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end
Мой файл .m
#import "FlashizPlugin.h"
@implementation FlashizPlugin
@synthesize flashizFacade;
- (void) openFlashiz:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options {
NSLog(@"Flashiz Payment Opening...");
NSString *callbackId = [arguments pop];
NSString *invoiceId = [arguments objectAtIndex:0];
FlashizFacade* facade = [[FlashizFacade alloc] initWithEnvironment:FE_TEST];
facade.parentViewController = self;
facade.delegate = self;
self.flashizFacade = facade;
[facade executePaymentForInvoiceId:invoiceId];
[facade release];
CDVPluginResult *result;
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:@"Flashiz Payment Executed..."];
[self writeJavascript:[result toSuccessCallbackString:callbackId]];
}
@end
Заранее спасибо!