MainViewController (раскадровка) не может выдвинуть мой UITableViewController - PullRequest
0 голосов
/ 16 января 2012

Я только что создал новый проект в xcode 4.2 с шаблоном Utility Application.Это иерархия моего проекта:

enter image description here

Затем я попытался выдвинуть UITableViewController без файлов XIB (Batikla: UITableViewController) из MainViewController.Сначала я помещаю кнопку в раскадровку MainViewController и подключаю ее к своему методу ibaction:

@implementation MainViewController
@synthesize managedObjectContext = _managedObjectContext;
@synthesize flipsidePopoverController = _flipsidePopoverController;

    - (IBAction)batikla{
        NSLog(@"test 1");

        Batikla *batikla = [[Batikla alloc] initWithStyle:UITableViewStylePlain];
        batikla.title = [NSString stringWithFormat:@"Test"];
        [self.navigationController pushViewController:batikla animated:YES];
        [batikla release];

        NSLog(@"test 2");

}

После нажатия на кнопку нет вида, который выдвигается к виду, вместо этого в консоли отображается:

There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".Attaching to process 58916.
2012-01-17 01:30:47.569 iBadah[58916:207] test 1
2012-01-17 01:30:47.572 iBadah[58916:207] test 2

Метод был запущен, но почему мой uitableviewcontroller не попал в экран?

Ответы [ 2 ]

1 голос
/ 16 января 2012

Push и pop требуют навигационного контроллера.Шаблон утилиты не включает контроллер навигации.

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

да, я понял .. TJ был обряд, я пропустил навигационный контроллер здесь так что здесь идет: в AppDelegate.m didFinishLaunchingWithOptions я закомментировал код по умолчанию и поместил его с контроллером представления навигации, проверьте это: (поскольку я использовал служебный шаблон, я предполагаю, что у вас также есть тот же код)

// Override point for customization after application launch.
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    MainViewController *controller = (MainViewController *)navigationController.topViewController;
    //MainViewController *controller = (MainViewController *)self.window.rootViewController;
    controller.managedObjectContext = self.managedObjectContext;
    return YES;

и не забудьте добавить uinavcontroller в раскадровку, вы можете сделать это из -> редактор -> встроить -> контроллер навигации (после нажатия контроллера основного вида), например так: enter image description here и ты должен идти туда.

Надеюсь, это поможет кому-то. Спасибо

...