2010-04-13 5 views
0

Все нормально, мой Навигационный контроллер дисплей мой «Меню 1» пункт, но когда я нажимаю его, как представляется, проблема с:iPhone Xcode - контроллер навигации на втором экране XIB?

[self.navigationController pushViewController: с анимированным: YES]; строка не подключается к точке разрыва в файле myClass. поэтому я думаю, что я не присоединился к чему-то? но не знаете что?

Мое второе представление с контроллером навигации не имеет прямого доступа к AppDelegate, поэтому не может присоединиться к нему, как я вижу в некоторых учебниках.

первый взгляд это просто кнопка при нажатии на звонки:

[self presentModalViewController:mainViewController animated:YES]; 

мой второй Просмотр заголовка 'MainViewController' выглядит как:

@interface MainViewController :UITableViewController <UITableViewDelegate, UITableViewDataSource> 
{ 
    NSArray *controllers; 
    UINavigationController *navController; 
} 

@property (nonatomic, retain) IBOutlet UINavigationController *navControllers; 

@property (nonatomic, retain) NSArray *controller; 

Тогда у меня есть MainViewController.m

@synthesize controllers; 
@synthesize navController; 

- (void) viewDidLoad 
{ 
    NSMutableArray *array = [[NSMutaleArray alloc] init]; 
    myClass *c = [[myClass alloc] initWithStyle:UITableViewStylePlain]; 
    c.Title = @"Menu 1"; 

    [array addObject:c]; 
    self.Controllers = array; 
    [array release]; 
} 

реализованное числоOfRowsInSection и cellForRowAtIndexPath

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    NSUInteger row = [indexPath row]; 
    myClass *c = [self.controllers objectAtIndex:row]; 
    [self.navigationController pushViewController:c animated:YES]; // doesn't load myClass c 
    // [self.navController pushViewController:c animated:YES]; 
} 

Также в Interface Builder я перетащил Навигационный контроллер на мой новый XIB и изменил класс Root View Controller для MainViewController, а также подключен к разъему файла Владелец в навигационный контроллер для подключения NavController розетка.

Спасибо за ваше время.

+0

В чем же проблема? Какая «точка останова в файле myClass»? –

+0

1-я строка - (void) viewDidLoad myClass, когда я объявляю массив и привязываю его к контроллеру навигации. Надеюсь это поможет. – Frames84

+0

Итак, весь код, который вы вставляете здесь, работает нормально? Проблема в том, что метод 'viewDidLoad' в' MyClass' (который, как представляется, является подклассом 'UITableViewController'), никогда не вызван? Возможно, вам следует опубликовать код для этого класса, если это проблема. –

ответ

0

myClass.h

#import "SecondLevelViewController.h" //This inherts UITableViewController 

@class myClass; 

@interface myClass : SecondLevelViewController 
{ 
NSArray *list; 
myClassDetail *detail; 
} 
@property (nonatomic, retain) NSArray *list; 

myClass.m

#import "myClass.h" 
#import "myClassDetail.h" 
#import "NavAppDelegate.h" 

@implementation myClass 
@systjesize list; 

- (void) viewDidLoad 
{ 
    NSArray *array = [[NSArray alloc] initWithObjects:@"test1",@"test2",nil]; 
self.list = array; 
.. .. .. 
//I can't get a break point at this point or in any of the other methods 
} 

Так не получают точку останова, чтобы ударить на этой странице говорит мне, что я пропустил sometihng. Поскольку это отдельный файл XIB из MainWindow.XIB, у меня нет доступа к App Delegate.

Так что мне действительно нужно знать, как подключить навигационный контроллер к файлу XIV второго вида, когда у меня нет делегата приложения в построителе интерфейса. Все обучающие программы показывают, что контроллер навигации подключен к этому делегату приложения.

Программа соответствует файлу и запускается, я получаю 1-й «Меню 1» в списке, но затем, когда я пытаюсь и повторно заполнять один и тот же список навигации, мои новые пункты меню «myClass» «1», «тест 2» он не попадает в событие viewDidLoad.

Смежные вопросы