我有一个iPhone应用程序,使用表视图作为界面。每次用户点击其中一个表格单元时,我想向用户显示另一个窗口。但是,我将推入导航控制器的窗口的用户界面非常相似。因此,我决定制作一个“通用nib文件”,用于所有这个通用nib文件的文件所有者的子类。
然而,我困惑的是(也不起作用的是),我似乎无法自定义这个通用nib文件。我在文件初始化时有以下代码:
在.h文件中:
在 .m 文件中:
然而,我困惑的是(也不起作用的是),我似乎无法自定义这个通用nib文件。我在文件初始化时有以下代码:
在.h文件中:
#import <UIKit/UIKit.h>
#import "primeViewController.h"
@interface subclass1 : primeViewController { //subclassing from a generic view controller that owns a generic nib file
}
在 .m 文件中:
#import "subclass1.h"
@implementation subclass1
- (id) initWithLabelAndButton {
if(self = [super initWithNibName:@"primeViewController" bundle:nil]) {
self.label.text = @"Title of the first subclass";
}
return self;
}
但是当我在表格视图中实例化该类时:
//somewhere in rootviewcontroller.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
switch (indexPath.row) {
case 0:
{
checkPrime* checkPrimeViewController = [[checkPrime alloc] initWithLabelAndButton];
[self.navigationController pushViewController:checkPrimeViewController animated:YES];
[checkPrimeViewController release];
break;
}
default:
break;
}
}
有人能告诉我我错在哪里吗?或者我是错误地认为xcode允许我在其子类中多次使用nib文件?我不知道为什么我不能这样做,但我想不出如何解决...