Вызов нового представления: проблемы «скрытие переменной экземпляра» - PullRequest
0 голосов
/ 24 января 2012

Я пытаюсь вызвать подпредставление после нажатия кнопки на моем корневом контроллере. Предупреждения появляются в моем AppDelegate (код приведен ниже), но я включил метод из моего корневого контроллера о том, как я вызываю это новое подпредставление, также в случае, если у него тоже есть проблема. предупреждения, которые продолжают появляться, состоят в том, что локальное объявление navController скрывает переменную экземпляра.
Когда я запускаю приложение (которое раньше нормально открывалось), оно теперь просто выходит ...

#import "SEM2REDOAppDelegate.h"
#import "SEM2REDOViewController.h"

@implementation SEM2REDOAppDelegate

@synthesize window;
@synthesize navController;


#pragma mark -
#pragma mark Application lifecycle

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    [self.window makeKeyAndVisible];

    SEM2REDOViewController  *firstController = [[SEM2REDOViewController alloc]
                                            initWithNibName:@"SEM2REDOViewController" bundle:nil];
    UINavigationController  *navController = [[UINavigationController alloc]
                                              initWithRootViewController:firstController];

    [self setNavContorller:navController];
    [window addSubview:[navController view]];

    [navController release];
    [firstController release];  

    return YES;
}

тогда вот метод внутри моего первого контроллера вида

- (IBAction)chooseFirstMeeting:(id)sender {     
    SelectRotationController *selectView = [[SelectRotationController alloc] 
                                            initWithNibName:@"SelectView" bundle:[NSBundle mainBundle]];
    [selectView.navigationItem setTitle:@"Select First Meeting"];
    [self.navigationController pushViewController:self.selectRotationController animated:YES];
    self.selectRotationController = selectView; 
    [selectView release];
}

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

1 Ответ

0 голосов
/ 24 января 2012

Переименуйте navController

UINavigationController  *navController = [[UINavigationController alloc]
                                          initWithRootViewController:firstController];

во что-то другое.Вы можете сделать это автоматически, щелкнув по слову control «navController», выбрав «Refactor» в контекстном меню, а затем «Rename ...».

Объяснение:

Проблема, я полагаюв локальной переменной navController, имя которой совпадает с именем переменной экземпляра в синтезированном объявленном свойстве navController.

Редактировать: Кроме того, похоже, что это опечатка:

 [self setNavContorller:navController];

Правильно:

 [self setNavController:navController];
...