我已成功实施MFSideMenu,以便滚动视图中的所有导航正常除了 scrollsToTop(特别是在我的TableViewControllers和UIscrollview占用整个帧的一个ViewController中)。 scrollsToTop无法正常工作,即使它已在每个TableView中启用。
我知道MFSideMenu导致了这个问题,因为我从项目中删除了它,而且scrolllsToTop工作正常。
以下是我在发布时从AppDelegate调用MFSideMenu的方法:
//Instantiate the Side Menu and the center view
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UITabBarController *tabBarController = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"];
SideMenuViewController *leftSideMenuController = [[SideMenuViewController alloc] init];
UINavigationController *leftViewNavigationController = [[UINavigationController alloc] initWithRootViewController:leftSideMenuController];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:tabBarController
leftMenuViewController:leftViewNavigationController
rightMenuViewController:nil];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];
我关注的TableViews嵌入在NavigationControllers中,它们嵌入在上面代码中引用的tabBarController中。当我删除这段代码时,scrollsToTop正常工作。
我认为我需要调整容器以包含TableViewControllers。关于如何做到的任何想法?
答案 0 :(得分:0)
我自己的问题的答案:
问题似乎是我在导航控制器中有左侧菜单。所以我放弃了,并为菜单控制器制作了故事板布局。在那个故事板布局中,我添加了一个导航栏来掩盖通常出现在此版本的MFSideMenu中的黑色空间。
所以AppDelegate中的新窗口设置是......
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UITabBarController *tbc = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"];
//Then put get the left side menu controller, but inside of a navcontroller
SideMenuViewController *leftSideMenuController = [storyboard instantiateViewControllerWithIdentifier:@"SideMenu"];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:tbc
leftMenuViewController:leftSideMenuController rightMenuViewController:nil];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];
另一个UIViewController中的scrollview问题原来是一个Autolayout问题。