Iphone 将NSMutableArray传递给UITableViewController

Iphone 将NSMutableArray传递给UITableViewController,iphone,objective-c,ios,ipad,ios5,Iphone,Objective C,Ios,Ipad,Ios5,我有一个包含NSMutableArray的UIViewController,我想将此数组传递给UITableViewController并在表上查看它。。我该怎么做 我的意思是我想(传递)NSMutableArray或任何变量从UIViewController到UITableViewController,而不是(创建)一个表 我想将NewBookArray传递给UITableViewController,我在UIViewController中写道: mytable.gettedBooks = n

我有一个包含NSMutableArray的UIViewController,我想将此数组传递给UITableViewController并在表上查看它。。我该怎么做

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

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

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

mytable.try = @"Emyyyyy"; // try is a NSString in UITableViewController
- (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;
}
我在DidloadView中的UITableViewController中写道

NSLog(@"Try: %@", try); // out is null
NSLog(@"my getted array count: %d", [gettedBooks count]); // out is 0
有什么帮助吗?

希望,这将帮助你…享受

希望,这将帮助你…享受

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

您还可以在网上了解更多的方法

首先,您要确保在
@界面中具有所需的委托调用:

@interface RootViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
    NSMutableArray         * feed;
    UITableView            * tableView;
}
numberofrowsinssection
确保您实际从
NSMutableArray
加载所需数量的单元格行。而
cellforrowatinexpath
实际上会将
NSMutableArray
中每一行的内容加载到
UITableView
的每一行中

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

UITableViewController *viewController = [[UITableViewController alloc] initWithNibName:@"TableXIB" bundle:nil];
[viewController setGettedBooks:newBooksArray];
[self.navigationController pushViewController:viewController animated:YES];

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

您还可以在网上了解更多的方法

首先,您要确保在
@界面中具有所需的委托调用:

@interface RootViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
{
    NSMutableArray         * feed;
    UITableView            * tableView;
}
numberofrowsinssection
确保您实际从
NSMutableArray
加载所需数量的单元格行。而
cellforrowatinexpath
实际上会将
NSMutableArray
中每一行的内容加载到
UITableView
的每一行中

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

UITableViewController *viewController = [[UITableViewController alloc] initWithNibName:@"TableXIB" bundle:nil];
[viewController setGettedBooks:newBooksArray];
[self.navigationController pushViewController:viewController animated:YES];

如果您使用的是选项卡栏控制器,第一个视图控制器是表视图控制器,第二个是UIView控制器。您可以按照代码段将数据传递给表视图控制器。您需要在table view controller中声明名为
arrayData
(NSMutableArray)的变量并设置属性(因为我们需要从另一个类访问该属性)。从该
arrayData
,您需要在tableView中加载数据。在视图控制器类中编写以下代码

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

如果您使用的是选项卡栏控制器,并且第一个视图控制器是表视图控制器,第二个是UIView控制器,则可以选择使用委托。

。您可以按照代码段将数据传递给表视图控制器。您需要在table view controller中声明名为
arrayData
(NSMutableArray)的变量并设置属性(因为我们需要从另一个类访问该属性)。从该
arrayData
,您需要在tableView中加载数据。在视图控制器类中编写以下代码

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


你也可以选择使用代理。

你能给我举个例子吗?你尝试了什么。显示您的代码……您需要从这里开始:@Jenox
try
Objective-C++
中的保留关键字,而不是
Objective-C
,但是,对于任何人来说,将其用作变量名或类型标识符仍然不是一个好主意。您能给我一个示例吗?您尝试了什么。显示您的代码…..您需要从这里开始:@Jenox
try
Objective-C++
中的保留关键字,而不是
Objective-C
,但是,任何人使用它作为变量名或类型标识符都不是一个好主意。我没有看视频,但是在这里的示例代码中缺少了一堆委托方法。他们可能会帮助其他提出这个问题的人。还有更好的吗?-我还添加了
numberofrowsin部分。对不起,我应该说一个数据源方法。我没在想。现在看起来不错!我使用的是xcode 4.3,我只想将数组从UIViewController传递到UITableView控制器-不创建表意味着我想打开表,查看从UITableViewController获得的数组,并使用NSLogI打印它。我没有观看视频,但这里的示例代码中缺少一系列委托方法。他们可能会帮助其他提出这个问题的人。还有更好的吗?-我还添加了
numberofrowsin部分。对不起,我应该说一个数据源方法。我没在想。现在看起来不错!我使用的是xcode 4.3,我只想将数组从UIViewController传递到UITableView控制器-不创建表意味着我想打开表,查看从UITableViewController获得的数组,并使用NSLog打印它抱歉,但我无法理解数组内容的位置。。你能再亮一点吗?对不起,我不明白数组内容在哪里。。你能再多点照明吗??