我有一个用来交换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...nAppDelegate声明了窗口和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;
@endMainViewController.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链接到Interface Builder中相应的UIView。通过这种方式,每个页面都将被设置为一个变量,并链接到IB中,从而创建一个变量、出口和连接的混乱。
我的问题是:有没有一种方法可以动态创建这些连接,以便我可以在不将它们设置为IBOutlet的情况下使用我的funcGoToPage函数交换它们?
发布于 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的出口https://stackoverflow.com/questions/3770663
复制相似问题