Drop down menu 如何将视图控制器添加到菜单上的每个项目?

Drop down menu 如何将视图控制器添加到菜单上的每个项目?,drop-down-menu,uiviewcontroller,Drop Down Menu,Uiviewcontroller,我相信这很容易,但我花了好几个小时把它做好。 我从github下载了这个简单的菜单: 视图控制器如下所示: - (void)addDropDownMenu{ ADDropDownMenuView *dropDownMenuView = [[ADDropDownMenuView alloc] initAtOrigin:CGPointMake(0, 20) withItemsViews

我相信这很容易,但我花了好几个小时把它做好。 我从github下载了这个简单的菜单:

视图控制器如下所示:

- (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和项目3连接?(因此,每次单击不同的项目时,我都会看到不同的视图)。
任何帮助都将不胜感激……

我已更改演示代码以向您展示解决方案。 在ViewController.m文件中,添加具有两个属性的私有类别

@interface ViewController ()<ADDropDownMenuDelegate>

@property (nonatomic, strong) NSArray *viewControllers;
@property (nonatomic, strong) ADDropDownMenuView *dropDownMenuView;

@end
您必须将这些视图控制器作为子视图控制器添加到
self
。不要忘记在情节提要中为视图控制器设置情节提要ID。在这种情况下,第一个视图控制器具有ViewController2Blue情节提要ID,第二个视图控制器具有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标题标签文本,将viewController的视图添加到self view

- (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];
    }
}