首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要为每个UIVIew创建变量并链接IBOutlet吗?

我需要为每个UIVIew创建变量并链接IBOutlet吗?
EN

Stack Overflow用户
提问于 2010-09-22 23:08:52
回答 1查看 289关注 0票数 0

我有一个用来交换UIView对象的视图控制器。有可能有数百种不同的视图,每个视图都有自己的行为。

在我当前的MainWindow.xib文件中,我当前有:

代码语言:javascript
复制
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

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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链接到Interface Builder中相应的UIView。通过这种方式,每个页面都将被设置为一个变量,并链接到IB中,从而创建一个变量、出口和连接的混乱。

我的问题是:有没有一种方法可以动态创建这些连接,以便我可以在不将它们设置为IBOutlet的情况下使用我的funcGoToPage函数交换它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-22 23:34:39

加载nib时,会加载其所有内容。如果你在一个nib中有很多视图,你很快就会耗尽内存。

我会把每个页面放在一个单独的半边中,然后在需要的时候加载这个半边:[NSBundle mainBundle loadNibNamed:@"nibNameWithoutExtension“owner:self options:nil];

为此,请执行以下操作:

  • IBOutlet (例如newPage )添加到self引用的任何内容
  • nibNameWithoutExtension中的文件所有者设置为self引用的任何内容<代码>H29<代码>H110将<代码>D11中的视图连接到文件所有者<代码>H213<代码>F214的出口
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3770663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档