Ios UIScrollView菜单作为导航菜单
我有一个应用程序,其中菜单栏是一个UIScrollView,由我添加到UIViewController上的UIButtons组成。 我想更改按下UIScrollView上的按钮时显示的UIViewController。 但从UIScrollView来看,显然我不能打电话:Ios UIScrollView菜单作为导航菜单,ios,xcode,uiviewcontroller,uiscrollview,Ios,Xcode,Uiviewcontroller,Uiscrollview,我有一个应用程序,其中菜单栏是一个UIScrollView,由我添加到UIViewController上的UIButtons组成。 我想更改按下UIScrollView上的按钮时显示的UIViewController。 但从UIScrollView来看,显然我不能打电话: [self.view presentViewController:myView animated:YES completion:nil]; 我知道处理这种视图切换的最佳方法。从应用程序的根视图中演示它 [[[[[UIAppl
[self.view presentViewController:myView animated:YES completion:nil];
我知道处理这种视图切换的最佳方法。从应用程序的根视图中演示它
[[[[[UIApplication sharedApplication]delegate]window]rootViewController] presentViewController:<#your view#> animated:<#a bool#> completion:<#any handler#>];
试试这个
__弱UIViewController viewCSelf=UIViewController[self.superview nextResponder]
if([viewCSelf isKindOfClass:[UIViewController class]]){
[viewCSelf presentViewController:已设置动画:是完成:无]
}当有一个基于侧菜单的应用程序时,我一直看到的基本方法是,必须有一个ContainerViewController来保存菜单&其余所有其他ViewController都以以下几种方式显示在容器上- 作为childViewController, 推动 作为情态动词 作为自定义动画推送或模式。 现在你可能不得不重新思考应用程序的设计,你想如何继续 如上在push&model中所述,您将只能在ContainerViewController上访问菜单。还有另一种方法可以将菜单添加为ApplicationWindow的子视图
希望这能帮助你决定你想采取哪种方式。最传统的方式是使用授权。 无论如何,您的scrollView位于具有控制器的视图上,您可以从该视图以任何方式显示另一个控制器,如显示模式、推送到导航控制器堆栈、添加为子视图等。 如何构建代码取决于接收按钮操作的对象。假设该视图包含带按钮的滚动视图:
// MenuBarView.h
@class MenuBarView;
@protocol MenuBarViewDelegate <NSObject>
- (void)menuBarView:(MenuBarView *)menuBar didSelectMenuItemAtIndex:(NSUInteger)index;
@end
@interface MenuBarView
@property (weak) id<MenuBarViewDelegate> delegate;
@end
// MenuBarView.m
...
- (void)menuButtonAction:(UIButton *)sender
{
[_delegate menuBarView:self
didSelectMenuItemAtIndex:sender.tag] //you can use button's tag as row index
}
...
现在,在拥有MenuBarView实例的viewController中采用MenuBarViewDeleteGate协议,并根据所选菜单索引显示子视图控制器据我所知,您已将屏幕分为两个区域。一个是带有导航按钮的滚动视图,另一个是根据滚动视图中按下的按钮显示某些视图的区域?是,在下层有视图,视图上方有我的ScrollView菜单,带有按钮,用于选择我要查看的视图…好的,然后您可以在要显示某些视图的区域中添加容器视图,并使用容器视图childviewcontroller propertyok显示视图控制器,我知道如何创建委托方法,但我不知道当我按MenuBarView按钮时如何在所有视图控制器中使用在视图控制器之间切换。。。