Нужно ли создавать переменные и связывать IBOutlet для каждого UIVIew? - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть View Controller, который обменивается объектами UIView.Существует потенциальная возможность иметь сотни различных взглядов, каждый со своим поведением.

В моем текущем файле MainWindow.xib, который у меня сейчас есть:

File's Owner     UIApplication
First Responder  UIResponder
AppDelegate      AppDelegate
  -Cover         Cover
Window           UIWindow
Table of Contents  TableOfContents
page1            Page1
page2            Page2
page...n         Page...n

AppDelegate объявляет окно и viewController.Это довольно просто.

MainViewController.h

#import <UIKit/UIKit.h>


@class TableOfContents, Page1;

@interface MainViewController : UIViewController {

    TableOfContents *tableOfContents;
    Page1 *page1;
    Page2 *page2;
    Page...n *page...n;
}

@property (nonatomic, retain) IBOutlet TableOfContents *tableOfContents;
@property (nonatomic, retain) IBOutlet Page1             *page1;
@property (nonatomic, retain) IBOutlet Page2             *page2;
@property (nonatomic, retain) IBOutlet Page...n          *page...n;

-(IBAction)funcGoToPage:(id)sender;

@end

MainViewController.m

#import "MainViewController.h"
#import "TableOfContents.h"
#import "Cover.h"
#import "Page1.h"
#import "Page2.h"
#import "Page...n.h"

@implementation MainViewController

@synthesize page1, page2, page...n tableOfContents;
@synthesize pageID, pagesPathFile, pagesPath;


-(IBAction)funcGoToPage:(id)sender{

    //[[self view] removeFromSuperview];
    [self.view addSubview:self.tableOfContents];
}

В настоящее время соответствующие классы UIView довольно просты, поэтому я воздержусьотправляя их.

Прямо сейчас funcGoToPage просто вызывает tableOfContents.В конце концов я заставлю его идти по разным местам в зависимости от того, на что нажали.

В настоящее время каждая страница настроена как IBOutlet и связана с MainViewController с соответствующим UIView в Интерфейсном Разработчике.Сделано так, что каждая страница должна быть настроена как переменная и связана с ней в IB, создавая концентратор переменных, выходов и соединений.

Мой вопрос: есть ли способ создать эти соединения на летучтобы я мог поменять их, используя функцию funcGoToPage, не настраивая их как IBOutlet?

1 Ответ

4 голосов
/ 22 сентября 2010

Когда загружается перо, загружается все его содержимое. Если у вас много просмотров в одном перо, вам быстро не хватит памяти.

Я бы помещал каждую страницу в отдельный перо, а затем загружал перо при необходимости: [[NSBundle mainBundle] loadNibNamed: @ "nibNameWithoutExtension" владелец: собственные параметры: ноль];

Чтобы это работало:

  • добавить IBOutlet, например, newPage, к тому, что self относится к
  • установить владельца файла в nibNameWithoutExtension на любое значение self, относящееся к
  • присоединить представление в nibNameWithoutExtension к выходу newPage Владельца файла
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...