我有一个UITableViewController(MyViewController.xib)。这显示了3行的标题。我为每一行标题都有3个新的xib文件。每行选择我想加载XIB文件。当我点击RowIndex Selection时,我就到了这个地方。但是,当我试图加载NIB文件时,没有任何事情发生。我的意思是程序正在崩溃,NIB文件正在加载。
我在这里定义我的界面声明。
#import <UIKit/UIKit.h>
#import "HistoryShow.h"
@interface MyViewController : UITableViewController {
NSArray *tableList;
IBOutlet HistoryShow *historyController;
}
@property (nonatomic,retain) NSArray *tableList;
@property (nonatomic,retain) IBOutlet HistoryShow *historyController;
@end
我的实施细节如下。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *str = [NSString stringWithFormat:@"%@",[tableList objectAtIndex:indexPath.row]]; //typecasting
if([@"History" isEqual:str])
{
NSLog(@"!!!!!!!!!!!!!!!");
HistoryShow *detailViewController = [[[HistoryShow alloc]initWithNibName:@"HistoryShow" bundle:nil]autorelease];
[historyController release];
}
}
这是令人印象深刻的“!!!!!!”在控制台上,但下一个“HistoryShow.xib”没有加载。
确切的问题是什么? 提前谢谢。
答案 0 :(得分:1)
您必须使用addSubview:
将视图添加到当前视图中,或使用viewController
推送navigationController
以查看视图。
像这样的东西
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *str = [NSString stringWithFormat:@"%@",[tableList objectAtIndex:indexPath.row]]; //typecasting
if([@"History" isEqual:str])
{
NSLog(@"!!!!!!!!!!!!!!!");
HistoryShow *detailViewController = [[HistoryShow alloc]initWithNibName:@"HistoryShow" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES]; // if you have a navigation controller
[detailViewController release];
}
}
答案 1 :(得分:0)
您正在实例化detailViewController
,但您没有做任何事情。
尝试在alloc
detailViewController
之后添加此内容:
[self presentModalViewController:detailViewController animated:YES];