UITabBarController является нулем? - PullRequest
0 голосов
/ 10 декабря 2011

Я пытался создать приложение на основе панели вкладок с нуля, но у меня возникли некоторые проблемы.В основном у меня есть мой AppDelegate.h, AppDelegate.m и MainView.xib.В файле .h у меня есть:

@interface AppDelegate : UIResponder <UIApplicationDelegate, UITabBarControllerDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) IBOutlet UITabBarController *tabBarController;

@end

В папке My .m у меня есть:

@synthesize window = _window;
@synthesize tabBarController = _tabBarController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // Override point for customization after application launch.
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    return YES;
}

И в моем файле xib у меня есть владелец файлов как класс Appdelegate иОттуда моя розетка подключена к контроллеру табуляции.Проблема в том, что мой контроллер возвращает ноль и, следовательно, не устанавливается как rootViewController.Какой шаг / идея мне не хватает при настройке моего приложения?Заранее спасибо!

РЕДАКТИРОВАТЬ ИСПРАВЛЕНО: Поскольку я запускал из пустого приложения, у меня не было установлено «Основное имя файла nib-файла», поэтому мне просто нужно было установить его для пера, который я пытался загрузить.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2011

Обычно объект appDelegate не является подклассом UIResponder, а подклассом NSObject.

Подключаете ли вы экземпляр TabBar к первому респонденту в вашем файле xib?Имейте в виду, что это не сработает, поскольку первый респондент является только прокси-объектом, и установка для него типа класса не приведет к созданию экземпляра объекта.

Вместо этого создайте объект AppDelegate в вашей xibфайл и подключить TabBar к нему.

Надеюсь, это поможет.

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

Поскольку я запускал из пустого приложения, у меня не было установлено «Основное имя файла пера», поэтому мне просто нужно было установить его в поле, которое я пытался загрузить.

0 голосов
/ 10 декабря 2011

Вам необходимо создать контроллеры представления, к которым будут обращаться вкладки на контроллере панели вкладок.Затем вы должны назначить их свойству viewControllers панели вкладок.Вы можете сделать это непосредственно перед установкой панели вкладок как rootViewController:

MyViewController1 *vc1 = [[MyViewController1 alloc] init];
MyViewController2 *vc2 = [[MyViewController2 alloc] init];
NSArray *controllers = [NSArray arrayWithObjects:vc1, vc2, nil];
self.tabBarController.viewControllers = controllers;

Надеюсь, это поможет!

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