Я новичок в Objective-C и пытаюсь создать приложение, похожее на Springboard. Таким образом, я получил UIScrollView, в котором я делаю цикл для генерации группы подпредставлений из другого UIViewController.
Вот мой код:
@implementation ProjectsListViewController {
ProjectViewController *icon;
}
-
int row = 0;
int column = 0;
int page = 0;
for (int i = 0; i < 5; i++) {
icon = [[ProjectViewController alloc] init];
icon.iconPath = @"icon.png";
icon.iconTag = i;
int x = (1024 * page) + ((50 + (10 * column)) + (188 * column));
int y = (40 + (150 * row));
icon.view.frame = CGRectMake(x, y, icon.view.frame.size.width, icon.view.frame.size.height);
[self.scrollView addSubview:icon.view];
// Add a new page if we reach the end of one
if ((column == 4) && (row == 3)) {
row = 0;
column = 0;
page++;
// Add a new line if we reached last column
} else if (column == 4) {
column = 0;
row++;
// Add a column otherwise
} else {
column++;
}
}
Все это происходит в методе viewDidLoad. Пока там, если я запускаю приложение, все в порядке, значки есть.
Но когда я хочу щелкнуть значок (на кнопке есть IBAction, чтобы перейти в другое представление), мое приложение вылетает из-за возможных утечек памяти. Кажется, что нет больше ссылки на подпредставления.
Единственное решение, которое я нашел, - добавить каждый ProjectViewController внутри NSMutableArray. Таким образом, я могу нажимать на значки и открывать другой вид.
Может кто-нибудь объяснить мне, что я делаю не так?
Извините, если это звучит нудно для ваших ушей, я пытаюсь учиться!
Примечание: я использую ARC.