我正在尝试为我的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,我通常不会这样做,这就是问题,或者是否有其他错误。感谢。
答案 0 :(得分:1)
[NSArray arrayWithObjects:]返回一个自动释放的数组。所以你不必手动释放它。你可以删除行[array release];在viewDidLoad中,一切都应该正常工作。