我确信这很容易,但我花了好几个小时来做对。 我从github下载这个简单的菜单: https://github.com/Antondomashnev/ADDropDownMenuView
视图控制器如下所示:
- (void)addDropDownMenu{
ADDropDownMenuView *dropDownMenuView = [[ADDropDownMenuView alloc] initAtOrigin:CGPointMake(0, 20)
withItemsViews:@[[self dropDownItemWithTitle:NSLocalizedString(@"Item 1", @"")],
[self dropDownItemWithTitle:NSLocalizedString(@"Item 2", @"")],
[self dropDownItemWithTitle:NSLocalizedString(@"Item 3", @"")]]];
dropDownMenuView.delegate = self;
dropDownMenuView.separatorColor = [UIColor blackColor];
[self.view addSubview: dropDownMenuView];}
我在故事板中添加了2个视图控制器。 如何将它们与第2项和第3项连接起来? (所以每当我点击不同的项目时,我会看到不同的视图)。 任何帮助将不胜感激......
答案 0 :(得分:0)
我已更改演示代码以向您显示解决方案。 在ViewController.m文件中添加具有两个属性的私有类别
@interface ViewController ()<ADDropDownMenuDelegate>
@property (nonatomic, strong) NSArray *viewControllers;
@property (nonatomic, strong) ADDropDownMenuView *dropDownMenuView;
@end
然后你需要创建set viewControllers数组。例如,我想在viewDidLoad
ViewController2 *vc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2Blue"];
[self addChildViewController:vc1];
ViewController2 *vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2Yellow"];
[self addChildViewController:vc2];
self.viewControllers = @[vc1, vc2];
您必须将这些视图控制器作为子视图控制器添加到self
。别忘了在故事板中为视图控制器设置storyboardID。在这种情况下,第一个视图控制器具有ViewController2Blue storyboardID,第二个具有ViewController2Yellow。
最后要做的是实施ADDropDownMenuDelegate
方法
- (void)ADDropDownMenu:(ADDropDownMenuView *)view didSelectItem:(ADDropDownMenuItemView *)item
{
NSLog(@"%@ selected", item.titleLabel.text);
for(UIViewController *viewController in self.viewControllers){
[viewController.view removeFromSuperview];
}
if([item.titleLabel.text isEqualToString:NSLocalizedString(@"Item 1", @"")]){
[self.view insertSubview:((ViewController2 *)self.viewControllers[0]).view belowSubview:self.dropDownMenuView];
}
else{
[self.view insertSubview:((ViewController2 *)self.viewControllers[1]).view belowSubview:self.dropDownMenuView];
}
}
在此方法中,您将从superview中删除所有UIViewController的视图。然后根据ADDropDownMenuItemView titleLabel文本,将viewController的视图添加到自我视图中。