-1

我制作了一个按钮并将其连接到界面生成器中的一个操作。从显示视图切换到显示表格视图的操作方法中我需要做什么?

这是我的一些代码:

//  SwitchToTableViewController.h

#import <UIKit/UIKit.h>

@interface SwitchToTableViewController : UIViewController {


}

-(IBAction) switch : (id) sender;

@end

//SwitchToTableViewController.m
#import "SwitchToTableViewController.h"
#import "Table.h"
@implementation SwitchToTableViewController

-(IBAction) switch : (id) sender{

    // what is i need to write here to switch to tableview


}

@end

//table.m
#import <UIKit/UIKit.h>


@interface Table : UITableViewController {


}

@end

//table.h
#import "Table.h"


@implementation Table

#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 2;
}


// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    // Set up the cell...

    return cell;
}

@end
4

3 回答 3

0

你需要:

  1. 创建一个瞬间的表格。

  2. 将任何数据传递到这一时刻,很可能是一个数组,以便您可以使用它来显示单元格数据。您需要先在 Table 类中创建一些 iVar。目前你没有。

  3. 从多种方式中选择一种即时呈现您的表格。

查看 Apple 的文档。它有相当多的示例代码。

编辑示例代码:

在您的SwitchToTableViewController.h文件中,添加以下行:

#import "Table.h"

在您的SwitchToTableViewController.m中,进行此更改

-(IBAction) switch : (id) sender{

    // what is i need to write here to switch to tableview
    Table *myTable = [[Table alloc]init];
    myTable.cellArray = [NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3", nil];  //only an example to be displayed
    [self presentViewController:myTable animated:YES completion:nil];  // present your Table - view controller

}

您的Table.h文件应如下所示:

#import <UIKit/UIKit.h>

@interface Table : UITableViewController {

}
@property (nonatomic, strong) NSArray *cellArray;  // adding this line to get data from the parent
@end

在您的Table.m中,进行此更改

@implementation Table

@synthesize cellArray;  //add this line right after @implementation Table

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    // Return the number of rows in the section.
    return cellArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // Configure the cell...
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.text = [cellArray objectAtIndex:indexPath.row];
    }

    return cell;
}
于 2012-07-08T11:18:23.843 回答
0

您在这里有两个视图控制器,而不是两个视图。认识到这两个概念之间的区别非常重要。我在您需要阅读的其他关键词下方的答案中加粗。

要显示另一个视图控制器以响应按钮按下之类的操作,您需要创建目标视图控制器的新实例,然后以某种方式将其显示在屏幕上。

有很多方法可以做到这一点,但对于初学者来说,最简单的方法是在storyboards中完成所有这些。将两个视图控制器都添加到情节提要中。

您的初始视图控制器(带有按钮)应嵌入UINavigationController中。按住 Control 从按钮拖动到您的表格视图控制器。这将创建一个segue。从选项列表中选择“推送”。

嘿 presto,当您按下按钮时,您的表格视图现在将出现在屏幕上。

于 2012-07-08T12:05:28.617 回答
0

首先创建一个 SingleView 应用程序(基于 UIViewController),将其命名为 SwitchingView。

然后在视图上方添加一个 UITableView。使用接口生成器连接。将 tableview 的委托和数据源设置为 SwitchingView。

还要在视图上添加一个按钮(在添加表格视图之前)。使用 IB(界面生成器)隐藏设置表视图。

在按钮动作中

      tableview.hidden = NO;

这将显示您的表格视图!!!如果你想再次显示视图,只需

      tableview.hidden = YES;

在 tableView:didSelectForIndexPathRow 方法中。

于 2012-07-08T18:17:39.637 回答