Iphone-pushViewController не работает в XCode 4.2 - PullRequest
3 голосов
/ 30 ноября 2011

Я работаю над приложением, которое было создано в Xcode 3.2.5. Мое приложение работает как положено в XCode 3.2.5, но из-за некоторых проблем с памятью сейчас я использую Xcode 4.2.

Xcode 4.2 предлагает инструмент для преобразования существующего кода в код с поддержкой ARC [что означает автоматический подсчет ссылок.]. Выберите Редактировать -> Рефакторинг ... -> Преобразовать в Objective-C ARC ... работал для меня.

В своем коде я использую навигационный контроллер для переключения между представлениями при нажатии кнопки UIbutton. UIButton создан программно. Я использую следующий код, чтобы выдвинуть контроллер представления на button_click:

 -(void) button_click:(id)sender{

NSLog(@"button_clicked.....");
SecondView  *sv = [[SecondView alloc] initWithNibName:@"SecondView" bundle:[NSBundle mainBundle]];

    [self.navigationController pushViewController:sv animated:NO];
}

На консоли button_click отображается сообщение button_clicked…. . но pushViewcontroller не выдвигает SecondView.

pushViewController работает в XCode 3.2.5 , но в XCode 4.2 нажатие кнопки работает, но pushviewController навигационного контроллера не работает.

как я могу это исправить?

Любая помощь будет принята с благодарностью.

Заранее спасибо!

1 Ответ

3 голосов
/ 30 ноября 2011

Вы пытались поместить RootViewController в контроллер навигации на MainWindow.xib?

Дополнение к моему ответу:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    [self.window makeKeyAndVisible];

    // create the MyView controller instance:
    MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyView" bundle:nil];

    // set the title that appears in the navigation bar:
    [controller.navigationItem setTitle:@"Main View"];

    // create the Navigation Controller instance:
    UINavigationController *newnav = [[UINavigationController alloc] initWithRootViewController:controller];

    // set the navController property:
    [self setNavController:newnav];

    // release both controllers:
    [newnav release];
    [controller release];

    // add the Navigation Controller's view to the window:
    [window addSubview:[navController view]];

    return YES;
}

или

[self.window setRootViewController:navigationController];

[self.window makeKeyAndVisible];

ОбработкаNavigationControllers подробно объясняется здесь

...