Данные для UITableView изменяются - PullRequest
0 голосов
/ 23 ноября 2011

Я пытаюсь создать значок настроек для rightBarButtonItem для моего UINavigationController.В моем приложении: 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

, чем в настройках. Нажмите:

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

в настройках контроллера, в viewDidLoad:

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

Я не показываю этот массив сразу.Как и в приложении «Настройки iPhone», когда они нажимают на одну из ячеек в моей сгруппированной таблице, оно открывает новый UITableView.Таким образом, в этом UITableView, в tableView: numberOfRowsInSection: метод, я

return [self.DataArray count];

Однако, именно здесь происходит сбой моего приложения.Когда я смотрю на мой массив, у меня теперь есть случайные вещи, такие как vl.proj, иногда UIViews и т. Д. Я не знаю, почему этот массив изменяется.Я не знаю, вызвано ли это тем, что я вызываю popover из ApplicaionDelegate, чего я обычно не делаю, и в этом проблема, или если что-то не так.Спасибо.

1 Ответ

1 голос
/ 24 ноября 2011

[NSArray arrayWithObjects:] возвращает автоматически выпущенный массив. Так что вам не нужно выпускать его вручную. Вы можете просто удалить строку [array release]; во viewDidLoad и все должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...