уитаббар и уитаббаритем - PullRequest
2 голосов
/ 30 июня 2011

Я пытаюсь добавить UITabBarItems к UITabBar, а не к контроллеру вкладок. Вот что я пытался сделать. Это всегда сбой, когда я вызываю setItems. Может ли кто-нибудь, пожалуйста, указать, что не так.

My_Accounts *my_AccountsVC = [[My_Accounts alloc] init];
Payments *paymentsVC = [[Payments alloc] init];
Transfer *transferVC = [[Transfer alloc] init];
NSArray *VCArray = [[NSArray alloc] initWithObjects:my_AccountsVC,paymentsVC,transferVC, nil];
[self.tabbar setItems:VCArray];

Спасибо

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

Если вы посмотрите на items, он займет массив UITabBarItem с, а не UIViewController подклассов, которые вы, похоже, передаете.

Вы должны будете сохранитьотслеживать контроллеры представления в другом месте и передавать массив UITabBarItem s и обрабатывать контроллеры представления в делегате UITabBar.

Или, что еще лучше, использовать UITabBarController.

1 голос
/ 30 июня 2011

Код кажется неправильным. Я думаю

[self.tabbar setItems:VCArray];

Над строкой должен быть параметр Array UITabBarItems. Вы, наверное, прошли пункты UIViewController. Вы должны создать UITabbarItems и передать массив этого в метод setItems.

Вы должны сделать что-то вроде ниже:

    UITabBarItem *tabOne = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemBookmarks tag:0];
    UITabBarItem *tabTwo = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:1];

    NSArray *arrTabbarItems = [NSArray arrayWithObjects:tabOne,tabTwo, nil];

    [tabbar setItems:arrTabbarItems];

Я не уверен, что это будет делать, поскольку я всегда использую UITabBarController. Надеюсь, что это поможет.

1 голос
/ 30 июня 2011

Я полагаю, вы не понимаете, как работает UITabBarController ( ссылка на документацию ).Вы должны добавить UIViewController s к UITabBarController, используя свойство viewControllers.

Последняя строка должна выглядеть следующим образом:

[tabBarController setViewControllers:VCArray];

tabBar свойство UITabBarController доступно только для чтения.Вы не можете установить это.

Если у вас есть UITabBar ( ссылка на документацию ) без UITabBarViewController, вам нужно будет использовать метод:

- (void)setItems:(NSArray *)items animated:(BOOL)animated

Однако этипредметы не UIViewController с!Это экземпляры UITabBarItem ( ссылка на документацию ).Вы можете установить их все сразу, поместив их в массив, или вы можете установить их для каждого контроллера представления.Вы можете использовать несколько системных элементов («Еще», «Избранное» и т. Д.) Или использовать – initWithTitle:image:tag: для создания пользовательского элемента.

...