我的应用程序包含附加图像中显示的屏幕。

我在UIViewController中手动添加了一个UITableView对象作为子视图,我为UITableView A实现了数据源和委托。它可以显示数据并正确地响应触摸事件。

在UITableView A中触摸一行时,我需要再向下推一级。

但是,由于我使用的是UITableViewController,如何推送UITableView?

由于限制,不允许从当前的UIViewController推送到另一个UIViewController。

我知道这很复杂,令人困惑。 我只想从UITableView A切换到UITableView B.

如果你能帮助我,请欣赏它。 谢谢。

在此输入图像描述

===============>>#1 票数:2 已采纳

@Ankit Srivastava:一切皆有可能

didSelectRowAtIndexPath创建表视图的相同实例,并从那里推送它,并为该特定行更新dataSource。 如果您需要进一步的帮助,请告诉我。 我之前做过这个。

例如,如果您的表视图控制器名为RootViewController ,则您的didSelectRowAtIndexPath方法应如下所示:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([[self.navigationController viewControllers] count] < 3) {
    RootViewController *detailViewController = [[RootViewController alloc] initWithStyle:UITableViewStylePlain];
    detailViewController.rootArray = [self.rootArray objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:detailViewController animated:YES];
    [detailViewController release];
    }
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

numberOfRowsInSection

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [rootArray count];
}

rootArray是一个数组,包含您在当前表视图控制器中显示的信息,并且是从在委托中创建的主数组或可访问控制器的任何其他主类创建的。 像这样(在我的例子中的委托中创建):

NSArray *array1 = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
    NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", nil];
    NSArray *array3 = [NSArray arrayWithObjects:@"6", @"7", nil];
    NSArray *array4 = [NSArray arrayWithObjects:@"8", @"9", nil];
    NSArray *array5 = [NSArray arrayWithObjects:@"10", @"11", @"12", nil];
    NSArray *array6 = [NSArray arrayWithObjects:@"14", @"15", @"13", nil];
    NSArray *array7 = [NSArray arrayWithObjects:@"16", @"17", nil];
    NSArray *array8 = [NSArray arrayWithObjects:@"19", @"18", nil];
    NSArray *array9 = [NSArray arrayWithObjects:@"20", @"21", @"22", nil];

    NSMutableArray *mutable1 = [NSMutableArray arrayWithObjects:array1, array2, array3, nil];
    NSMutableArray *mutable2 = [NSMutableArray arrayWithObjects:array4, array5, array6, nil];
    NSMutableArray *mutable3 = [NSMutableArray arrayWithObjects:array7, array8, array9, nil];

    self.initialArray = [NSMutableArray arrayWithObjects:mutable1, mutable2, mutable3, nil];

以及当前tableViewController的viewDidLoad ,因此您有第一个加载的数组:

- (void)viewDidLoad
{
    [super viewDidLoad];
    YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
    if ([[self.navigationController viewControllers] count] == 1) {
        self.rootArray = appDelegate.initialArray;
    }
}

===============>>#2 票数:0

你尝试过使用tableViewController吗? 也许通过使用tableViewController而不影响您的视图层次结构? 使用tableViewController,但将tableview作为子视图添加到UIViewController的视图中 - 这是我假设您正在进行的操作。

或者,如果您只想切换它们,只需添加两个tableviews并交替显示它们的可见性?

  ask by user403015 translate from so

未解决问题?本站智能推荐:

4回复

如何在没有NavigationController的情况下推送子ViewController?

我想将viewControllers推送到主viewController上的某个区域。 据我了解,除非将其添加到UIWindow,否则不能使用NavigationController。 此动画使UIScrollView可以水平滚动。 但我希望它像NavigationController
3回复

如何在不使用类名的情况下推送下一类而不是在iOS中使用NSString?

我有很多类,例如Page1,Page2,Page3,Page4,Page5 .............. 我想编写一个方法转到下一个类,它将根据需要调用Page1,2,3。 这是我正在执行的代码: 任何想法或建议都将受到欢迎。
2回复

默认情况下,UITableView编辑模式

我试图有一个tableView具有编辑按钮默认情况下删除单元格。 是否有实现此目的的方法,而不是选择编辑按钮然后进入编辑模式? 谢谢
2回复

在有条件的情况下禁用UIPickerView / UITableView的委托方法

我想在某些情况下禁用下面的委托方法 假设if(x==YES)则只有上面的委托方法命中,否则它将不会响应。 请让我知道您的建议。
4回复

iOS推送通知 - 在没有提醒的情况下更新徽章?

有没有办法更新徽章中的号码而不显示提醒或打开应用程序? 我正在编写一个应该始终在图标徽章中显示当前未读消息数的应用程序,但我想这样做而不向用户显示任何警报。 我正在为iOS 5.0+开发。 编辑:更清楚的是, 当应用程序未运行时 ,我正在询问一种方法。 我希望服务器在没有显示
2回复

是否可以在不创建虚拟行的情况下更改UITableView中占位符行的高度?

TableView中最后一行之外的行高( 如果项目数小于TableView可以一次显示的行数,那么只有视觉详细信息的空占位符行 )始终与最后一行高度相同。 是否可以改变这一点而不需要添加虚拟的最后一行?
5回复

在不冻结ui的情况下从本地数据库将大数据加载到UITableview

我正在从Ultralite数据库中将10,000条记录检索到一个阵列中。 我的查询需要3秒钟的负载值到数组。 每当我单击以打开视图控制器时,这会使UI冻结3秒钟。 我想在后台执行查询时立即打开视图控制器并显示“活动”指示器3秒钟。 而且,如果可能的话,我想动态显示行动画并显示
1回复

UITableViewController上的UISegmentedControl

我有一个UITableViewController托管在Tab中的NavigationController中。 我希望有一个UISegmentedControl浮动在表上,以便在表滚动时可以看到UISegmentedControl。 我应该在哪个子视图中添加UISegmentedCo
4回复

AFNetworking - 如何在超时的情况下设置要重试的请求?

我最近从ASIHTTPRequest迁移到AFNetworking,这非常棒。 但是,我连接的服务器有一些问题,有时会导致我的请求超时。 使用ASIHTTPRequest时,可以使用以下选择器在超时时为请求设置重试计数 这篇文章可以进一步引用, 可以重试ASIHTTPRequest吗
3回复

如何在某些情况下阻止iPad旋转?

我有iPad应用程序,它是单视图应用程序。 该应用程序支持横向和纵向视图。 但是它有一个按钮,如果按下该按钮,我想在该屏幕上停止旋转。 在再次按下它之后,我想再次启用旋转,用户可能不得不再次旋转它。 我怎样才能做到这一点?