我有一个视图控制器交换UIView对象进出。可能有数百种不同的观点,每种观点都有自己的行为。我是否需要为每个UIVIew创建变量并链接IBOutlet?
在我目前的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链接到Interface Builder中相应的UIView。通过这种方式,每个页面都必须设置为一个变量并链接到IB,创建变量,插座和连接的hubub。
我的问题是:有没有办法在运行中创建这些连接,这样我就可以使用我的funcGoToPage函数进行交换,而无需将它们设置为IBOutlet?
当笔尖加载时,它也加载所有在各种UIViews中引用的图像和对象?就像如果每个视图包含高质量图像,那么所有这些图像都会一次加载到内存中? – emachine 2010-09-22 15:51:56
是的,在实例化笔尖时,加载的任何笔尖引用都会加载。 – 2010-09-22 17:42:13
有趣的是,我正在考虑你的建议并改用单独的笔尖。谢谢。 – emachine 2010-09-22 18:08:45