0

我已经成功实现了 MFSideMenu,以便所有导航都能正常工作,但滚动视图中的 scrollsToTop除外(特别是在我的 TableViewControllers 和一个 UIscrollview 占据整个框架的 ViewController 中)。scrollsToTop 不起作用,即使在每个 TableView 中都启用了它。

我知道是 MFSideMenu 导致了这个问题,因为我从项目中删除了它,然后 scrollsToTop 工作正常。

所以这是我在启动时从 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中的,NavigationControllers嵌入在上面代码中引用的tabBarController中。当我删除这段代码时,scrollsToTop 可以正常工作。

我想我需要以某种方式调整容器以包含 TableViewControllers。关于如何做到这一点的任何想法?

4

1 回答 1

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 中的滚动视图问题原来是自动布局问题。

于 2013-09-30T18:28:24.970 回答