Настоящий UIViewController - PullRequest
       2

Настоящий UIViewController

0 голосов
/ 28 марта 2012

Я знаю, что это очень глупо.

У меня есть контроллер вида, который сканирует QR-код. Я создаю его в AppDelegate (didFinishLaunchingWithOptions) и также устанавливаю свой AppDelegate в качестве делегата для контроллера представления, который будет вызывать метод, когда он закончит сканирование кода. В этом методе, который я реализовал в AppDelegate, я хочу представить UINavigationController. Проблема в том, что он не представляет мой навигационный контроллер. Это мой код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    reader=[ZBarReaderViewController new];
    reader.readerDelegate=self;
    reader.supportedOrientationsMask=ZBarOrientationMaskAll;
    ZBarImageScanner *scanner=reader.scanner;
    [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; 


   [self.window addSubview:reader.view];
   [self.window makeKeyAndVisible];
   return YES;
}

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    RootViewController *rootViewController=[[RootViewController alloc] init ];  //create root view controller

    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:rootViewController];  // create and init navigation controller with viewController
    [navigationController setValue:[[GradientBar alloc] init] forKey:@"navigationBar"];

    rootViewController.title=@"mTLU";
    [reader presentModalViewController:navigationController animated:NO];

}

1 Ответ

0 голосов
/ 28 марта 2012

Похоже, вы забыли установить self.window.rootViewController в didFinishLaunchingWithOptions:

Попытка:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
   // Override point for customization after application launch.
   self.reader=[ZBarReaderViewController new];
   self.reader.readerDelegate=self;
   self.reader.supportedOrientationsMask=ZBarOrientationMaskAll;
   ZBarImageScanner *scanner=reader.scanner;
   [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; 

   self.window.rootViewController = self.reader;

   [self.window addSubview:reader.view];
   [self.window makeKeyAndVisible];
   return YES;
}

В этом коде предполагается, что reader равно property из AppDelegate. Если это только iVar, вам следует пропустить self. (или рассмотреть возможность сделать его property).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...