нужна помощь с UINavigationController - PullRequest
       0

нужна помощь с UINavigationController

0 голосов
/ 20 сентября 2011

У меня есть класс с именем CataloguesEtTarifsPDFViewController, который отображает tableView. Теперь внутри этого класса я хочу создать UINavigationController и установить корень UINavigationController этого класса:

Вот что я сделал:

CataloguesEtTarifsPDFViewController.h

 UINavigationController *navigationController;

в файле реализации

CataloguesEtTarifsPDFViewController.m

- (void)viewDidLoad
{

    CataloguesEtTarifsPDFViewController *catalog =[[CataloguesEtTarifsPDFViewController alloc] init];

    loadingView.hidden=YES;
   navigationController = [[UINavigationController alloc] initWithRootViewController:catalog];

}

Когда я нажимаю на ячейку таблицы, я делаю это:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    WebViewController *webViewController = [[WebViewController alloc] init];

    [self.navigationController pushViewController:webViewController animated:YES];

    [navigationController release];

}

Но когда я бегу и щелкаю по таблице, ничего не происходит ... не отображается представление !!! Где я ошибаюсь?

ВАЖНО : у меня нет файла делегата. Только CataloguesEtTarifsPDFViewController.h CataloguesEtTarifsPDFViewController.m и CataloguesEtTarifsPDFViewController.xib.

EDIT:

- (IBAction)showViewCataloguesEtTarifsPDF:(id)sender{
    // Remove view to middleView
    [mainMenuViewController removeViewsToMiddleView];
    // create view controller
    cataloguesEtTarifsPDFViewController = [[CataloguesEtTarifsPDFViewController alloc] init];
    cataloguesEtTarifsPDFViewController.mainMenuViewController = mainMenuViewController;

   // hide/show header button
    [mainMenuViewController.headerViewController showMainMenuButton];
    // highlight footer tabbar button
    [mainMenuViewController.footerViewController.footerTabBar setSelectedItem:mainMenuViewController.footerViewController.footerTabBarItemMyAudi];   
     UINavigationController*  navigationController = [[UINavigationController alloc] initWithRootViewController:cataloguesEtTarifsPDFViewController];
      [self presentModalViewController:navigationController animated:YES];
}

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

То, что вы делаете в viewDidLoad, неверно.

Где бы вы ни показывали CataloguesEtTarifsPDFViewController, вы должны заключить его в UINavigationController и вместо этого показать UINavigationController.

Это обязательнобудет установлено свойство navigationController для UIViewController.

В вашем tableView: didSelectRowAtIndexPath: метод вы должны освободить переменную webViewController вместо свойства navigationController.

1 голос
/ 20 сентября 2011

Вы, вероятно, должны прочитать это: http://www.iosdevnotes.com/2011/03/uinavigationcontroller-tutorial/ Или это: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40007457-CH1-SW1

Или посмотрите это: http://peepcode.com/products/iphone-view-controllers-part-i

Это даст вам основы, и вы будете хорошо подготовлены, чтобы ответить на ваш вопрос и исправить свой код:)

PS: вам не нужно явно создавать и устанавливать UINavigationController в вашем контроллере представления. Если контроллер представления встроен в контроллер навигации, свойство navigationController вашего экземпляра контроллера представления автоматически найдет его и вернет.

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