0

我有包含 NSMutableArray 的 UIViewController ,我想将此数组传递给 UITableViewController 并在桌子上查看它.. 我该怎么做?

我的意思是我想(传递)NSMutableArray 或从 UIViewController 到 UITableViewController 的任何变量而不是(创建)表

我想将 newBooksArray 传递给 UITableViewController,我在 UIViewController 中写道:

mytable.gettedBooks = newBooksArray; // gettedBooks is NSMutableArray in UITableViewController

mytable.try = @"Emyyyyy"; // try is a NSString in UITableViewController

我在 DidloadView 的 UITableViewController 中写了

NSLog(@"Try: %@", try); // out is null
NSLog(@"my getted array count: %d", [gettedBooks count]); // out is 0

有什么帮助吗???

4

3 回答 3

2

创建 UITableView 并填充数组

我专门为这个问题创建了上面的教程。

您还可以在开发人员文档中了解更多方法

首先,您要确保在您的@interface

@interface RootViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
    NSMutableArray         * feed;
    UITableView            * tableView;
}

您需要在控制器中使用类似于以下内容的内容:

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

- (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];
    }

    cell.textLabel.text = [mutableArray objectAtIndex:indexPath.row];
    return cell;
}

numberOfRowsInSection确保您实际从NSMutableArray. 并且cellForRowAtIndexPath实际上将您的每一行的内容加载NSMutableArrayUITableView.

为了将它传递给另一个控制器,你不想要这样的东西吗?

UITableViewController *viewController = [[UITableViewController alloc] initWithNibName:@"TableXIB" bundle:nil];
[viewController setGettedBooks:newBooksArray];
[self.navigationController pushViewController:viewController animated:YES];
于 2012-04-21T13:24:31.020 回答
1

UITableview 教程和示例代码

希望,这会帮助你..享受

于 2012-04-21T13:17:00.823 回答
0

如果您使用的是 Tab Bar 控制器,第一个视图控制器是表格视图控制器,第二个是 UIView 控制器。您可以通过以下代码段将数据传递给表视图控制器。您需要arrayData在表视图控制器中声明名为(NSMutableArray)的变量并设置属性(因为我们需要从另一个类访问它。)从这里arrayData,您需要在表视图中加载数据。在视图控制器类中编写以下代码。

    NSArray *viewControllers = [self.tabBarController viewControllers];
    MyTableViewController *mTable = [viewControllers objectAtIndex:0];

    [mTable SetArrayData:arrayFromViewController];

    [mTable.tableView reloadData];

如果您使用的是导航控制器,您可以这样做

    NSArray *viewControllers = [self.navigationController viewControllers];
    MyTableViewController *mTable = [viewControllers objectAtIndex:0];

    [mTable SetArrayData:arrayFromViewController];

    [mTable.tableView reloadData];

您可以选择使用委托。

于 2012-04-21T14:46:18.887 回答