1

У меня есть приложение uipageviewcontroller, основанное на основе страницы по умолчанию приложения доступного в качестве отправной точки в Xcode 7.1получать предупреждение памяти в простом uipageviewcontroller приложении

Моего контроллер данных выглядит следующим образом:

@interface DataViewController() 
@property (weak, nonatomic) IBOutlet UITextView *descTextView; 
@property (weak, nonatomic) IBOutlet UIView *backgroundView; 
@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage; 
@property (weak, nonatomic) IBOutlet UILabel *titleLabel; 
@property (weak, nonatomic) IBOutlet UIBarButtonItem *startAgainButton; 
- (IBAction)settingsButtonPressed:(id)sender; 
- (IBAction)startAgainButtonPressed:(id)sender; 

@end 

@implementation DataViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.dataLabel.text = [self.dataObject title]; 
    self.backgroundImage.image = [UIImage imageNamed:[self.dataObject imageName]]; 
    self.descTextView.text = [self.dataObject desc]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

} 

Моих модель контроллера имеет выглядит следующим образом:

@interface ModelController() 

@property (readonly, strong, nonatomic) NSArray *pageData; 
@end 

@implementation ModelController 

- (instancetype)init { 
    self = [super init]; 
    if (self) { 

     _pageData = [self loadPageData]; 

    } 
    return self; 
} 

- (NSArray *)loadPageData{ 
    //255 173 80 
    NewsPoint *newspoint1 = [[NewsPoint alloc] init]; 
    newspoint1.title = @"my title"; 
    newspoint1.tintCode = @" "; 
    newspoint1.imageName = @"news"; 
    newspoint1.desc = @"my desc" 

return [[NSArray alloc] initWithObjects:newspoint1, newspoint2, newspoint3, newspoint4, newspoint5, newspoint6, newspoint7, nil]; 
} 

Когда я получаю память предупреждения мое приложение идет отвечать на запросы, и я больше не может красть между видами. Что я делаю не так?

+0

Нажмите '' отладки/pause'' и посмотреть, что основной поток делает – user996142

ответ

0

Приложение может получать предупреждение о наличии памяти, поскольку при запуске вы запускаете все ViewControllers.

Вы не должны хранить viewControllers в NSArray, но создавать их только тогда, когда вам это нужно.

Взгляните на этот ответ: Releasing unused pages in UIPageViewController