UIScrollView包含多个带有pagingEnabled的TableView

时间:2014-05-30 08:56:24

标签: ios objective-c uitableview uiscrollview

我的UIScrollView包含3个UITableViewpagingEnabled = YES

用户可以向左或向右平移以在表之间切换(就像iOS的通知中心一样)。

我已经处理了几乎所有的视觉错误(如果有人需要,我可以提供帮助),但问题是每个表都有UISearchBar。这意味着在我的控制器中,我创建了3 UITableView,3 UISearchBar和3 UISearchDisplayController

这将是一个地狱凌乱的控制者之一。

这种情况下的最佳做法是什么?

2 个答案:

答案 0 :(得分:0)

这听起来很乏味。

为什么不创建一个具有SearchBar和Tableview的UIViewController。自定义viewController以通过标签区分,可能添加一些委托并将其添加到您的UIScrollview?这样,编码将是结构化和干净的

我只是吐痰。

答案 1 :(得分:0)

左侧或右侧的桌子将随您的滑动一起移动。您有一类自定义UIViewController但不同的实例。

- (SearchResultViewController *)viewControllerAtIndex:(NSUInteger)index
{
    if (([[LeboncoinAgent shareAgent].searchConditions count] == 0) || (index >= [[LeboncoinAgent shareAgent].searchConditions count])) {
        return nil;
    }


    // Create a new view controller and pass suitable data.
    SearchResultViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SearchResultViewControllerId"];
    pageContentViewController.pageIndex = index;
    pageContentViewController.controller = self;

    return pageContentViewController;
}

#pragma mark - Page View Controller Data Source

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger index = ((SearchResultViewController*) viewController).pageIndex;

    if ((index == 0) || (index == NSNotFound)) {
        return nil;
    }

    index--;

    _currentPageIndex = index;

    return [self viewControllerAtIndex:index];
}