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