0

在我点击下一个按钮后,我试图让 UITableView 显示出来,但我无法让它工作......

我不知道为什么 TimesViewController.m 不起作用,我该如何链接它......

-(IBAction)nextView:(UIBarButtonItem *) sender{

    [self pushViewController:TimesTableViewController.m animated:YES];

}
4

2 回答 2

3

您需要通读View Controller 编程指南。本质上,它更多地取决于您的应用程序设计。最常见的方法是:

  1. 点击 nextView 应该以模态方式显示 TableView 控制器。
  2. 点击 nextView 应该将 TableView 控制器推送到导航堆栈中。

使用任何一种方法,您都需要为表视图创建一个单独的视图控制器,该控制器将管理表视图并充当它的委托/数据源。

在您的按钮操作处理程序中,您需要这样做:

-(IBAction)nextView:(UIBarButtonItem *) sender{
    MyTableViewController *tableController = [[MyTableViewController alloc] init];

    // For #1 above
    [self presentViewController:tableController animated:YES completion:^{
        // Any code that you want to execute once modal presentation is done
    }];

    // For #2 above
    [self.navigationController pushViewController:tableController animated:YES];
}

编辑:

在 MyTableViewController 上创建一个初始化方法,并在调用它时传递值。

- (id)initWithData1:(NSString *)iData1 data2:(NSString *)iData2 {
    if ((self = [super init])) {
        self.data1 = iData1;
        self.data2 = iData2;
    }
    return self;
}

MyTableViewController *tableController = [[MyTableViewController alloc] initWithData1:@"Some String" data2:@"Another string"];

PS:您还可以在 MyTableViewController 的头文件中公开字符串属性并从被调用者类中设置它

于 2013-11-10T22:45:07.950 回答
0

或者如果您想以编程方式执行此操作,请在您的 viewDidLoad 中,在您创建按钮之后

[firstsessionButton addTarget:self action:@selector(showtable:) forControlEvents:UIControlEventTouchUpInside];

-(void)showtable:(UIButton *)sender{
TableViewController *tableViewController=[[TableViewController alloc]init];
[self.navigationController pushViewController:tableViewController animated:YES];
}
于 2013-11-10T23:06:36.923 回答