UITableView的数据发生了变化

时间:2011-11-23 19:18:18

标签: iphone uitableview

我正在尝试为我的UINavigationController创建rightBarButtonItem的“设置”图标。在我的应用程序中:DidFinishLaunching,我创建按钮,然后设置它

//pseudo code for applicationdidfinish launching

HomeController *home = [[HomeController alloc] init]; // root view of my UINavigationController
home.navigationItem.rightBarButtonItem = settingsBarButtonItem;
[settingsButton addTarget:self action:@selector(settingsPressed:) forControlEvents:UIcontrolEventTouchUpInside]; // i used a button for the barbuttonitem to not get the bar button item border

比在settingsPressed:

SettingsController* settings = [[SettingsController alloc] initWithNibName:@"SettingsController" bundle:nil];
    UINavigationController* popoverNav = [[UINavigationController alloc] initWithRootViewController:settings];
    [settings release];
    popover = [[UIPopoverController alloc] initWithContentViewController:popoverNav];
    [popoverNav release];
    // show settings
    if ([popover isPopoverVisible]) {
        [popover dismissPopoverAnimated:YES];
    } else {
        [popover presentPopoverFromBarButtonItem:bbiSettings permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
    }

在SettingsController中,在viewDidLoad中:

NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
self.DataArray = array; // (nonatomic, retain)
[array release];

我没有马上显示这个数组。与iPhone设置应用程序一样,当他们点击我的Grouped Table中的一个单元格时,它会打开一个新的UITableView。所以在那个UITableView中,在tableView:numberOfRowsInSection:方法中,我

return [self.DataArray count];

但是,我的应用程序崩溃了。当我查看我的数组时,我现在有随机的东西,比如vl.proj有时候,UIViews等等。我不知道为什么这个数组会被改变。我不知道是不是因为我从applicaionDelegate调用popover,我通常不会这样做,这就是问题,或者是否有其他错误。感谢。

1 个答案:

答案 0 :(得分:1)

[NSArray arrayWithObjects:]返回一个自动释放的数组。所以你不必手动释放它。你可以删除行[array release];在viewDidLoad中,一切都应该正常工作。