Где объявить ViewControllers для настраиваемого представления вкладок? - PullRequest
0 голосов
/ 26 сентября 2011

Я пытаюсь выяснить, как использовать пользовательское представление вкладок, которое я нашел, под названием JMTabView, написанное Джейсоном Моррисси на GitHub.(Я пытался спросить его напрямую, но не получил ответа.)

Я знаю, как программно создать UITabBarController и назначить контроллеры представления.Что я не могу понять, так это где мне объявить мои четыре UITableViewController и другие ВК для каждой из четырех вкладок в этом примере.Код:

// TabDemoAppDelegate.m -> do I declare them here?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
TabDemoViewController * demoViewController = [[[TabDemoViewController alloc] initWithNibName:nil bundle:nil] autorelease];
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:demoViewController] autorelease];
//[self.navigationController setNavigationBarHidden:YES];

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window addSubview:self.navigationController.view];
[self.window makeKeyAndVisible];

return YES;
}

// TabDemoViewController.m -> or somewhere in here?

-(void)addCustomTabView; { // this is a private method
JMTabView * tabView = [[[JMTabView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height - 60., self.view.bounds.size.width, 60.)] autorelease];
tabView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;

[tabView setDelegate:self];

UIImage * standardIcon = [UIImage imageNamed:@"icon3.png"];
UIImage * highlightedIcon = [UIImage imageNamed:@"icon2.png"];

CustomTabItem * tabItem1 = [CustomTabItem tabItemWithTitle:@"One" icon:standardIcon alternateIcon:highlightedIcon];
CustomTabItem * tabItem2 = [CustomTabItem tabItemWithTitle:@"Two" icon:standardIcon alternateIcon:highlightedIcon];
CustomTabItem * tabItem3 = [CustomTabItem tabItemWithTitle:@"Three" icon:standardIcon alternateIcon:highlightedIcon];
CustomTabItem * tabItem4 = [CustomTabItem tabItemWithTitle:@"Four" icon:standardIcon alternateIcon:highlightedIcon];

[tabView addTabItem:tabItem1];
[tabView addTabItem:tabItem2];
[tabView addTabItem:tabItem3];
[tabView addTabItem:tabItem4];

[tabView setSelectionView:[CustomSelectionView createSelectionView]];
[tabView setItemSpacing:1.];
[tabView setBackgroundLayer:[[[CustomBackgroundLayer alloc] init] autorelease]];

[tabView setSelectedIndex:0];

[self.view addSubview:tabView];
}

Он упоминает блоки ... если они актуальны, каковы они, и это где я бы объявил ВК?Если да, то как?

//    You can run blocks by specifiying an executeBlock: paremeter
//    #if NS_BLOCKS_AVAILABLE
//    [tabView addTabItemWithTitle:@"One" icon:nil executeBlock:^{NSLog(@"abc");}];
//    #endif

1 Ответ

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

Я не знаком с этой конкретной библиотекой, но если она следует шаблону, аналогичному UITabViewController, я бы создал свойства для вашей вкладки (если вам понадобится ссылаться на них позже) в файле .h вашего делегата приложения, а затем создал бы ваши экземплярыв них.Если вы просто размещаете вкладки и вам больше не нужно ссылаться на них напрямую, вы сможете определить их в .m (возможно, в applicationDidFinishLaunching), а затем назначить их как вкладки и позволить контроллеру вкладок взять их оттуда.

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