Enr*_*tyo 4 iphone uitableview uiviewcontroller ios4
我在我的表视图控制器(和委托)中有这个代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailStatus *detailViewController = [[DetailStatus alloc] initWithNibName:@"DetailStatus" bundle:nil status:[mStatuses objectAtIndex:indexPath.row]];
[[self navigationController] pushViewController:detailViewController animated:YES];
[detailViewController release];
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
NSLog(@"exiting didselectrow");
}
Run Code Online (Sandbox Code Playgroud)
在我的DetailStatus类中:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil status:(NSDictionary *)pStatus {
NSLog(@"I am being called %d", [pStatus objectForKey:@"id"]);
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// some stuff
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,我的DetailStatus实际上正在初始化,在控制台窗口,它甚至输出"I am being called 000001"但奇怪的是视图没有被推到表视图...
我检查了笔尖的名字,没关系.我检查了DetailStatus标题文件,它看起来没问题(像这样):
@interface DetailStatus : UIViewController {
Run Code Online (Sandbox Code Playgroud)
所以有人知道为什么视图没有被推到窗口,即使我已经初始化并推动了它?
更新:我尝试将一些调试消息记录到DetailStatus中的viewDidLoad,看起来即使该类被实例化也没有加载视图......我想知道为什么.
UPDATE2:我觉得这可能是我的导航控制器组织错了..我有以下内容:
Login page -> customtabbar -> First table view -> DetailStatus
-> Second table view -> DetailStatus
Run Code Online (Sandbox Code Playgroud)
我想我只在该层次结构中维护一个导航控制器.我从未创建过其他导航控制器.我只推动一个又一个的观点.
谢谢大家的答案!我会尽快给出赏金,我会让其他人在赏金到期前先投票.
看了之后,这个场景似乎跟我一样.第一次做Tab + Navigation时我遇到了什么.
我确信基于Tab + Navigation的应用程序存在一些问题.虽然它显示Tab以及导航无法导航基本流程.并且使用如此少的代码解决您的问题非常困难.
而不是这个,我有一个替代解决方案:
一旦在XIB中有一个标签栏,最简单的方法是将UINavigationController对象从Library窗口(看起来像金色背景上的左侧导航栏按钮)拖动到标签栏的树视图中(仅文本视图,而不是GUI).将其放在标签栏下,然后将标签栏控制器下的现有视图控制器拖动到标签栏下方.
当您去查看该选项卡时,您应该看到它顶部的导航栏...如果您从另一个xib加载导航控制器,您将修改选项卡栏xib中的导航栏.
否则你可以在下面你可以按照相同的最佳网址:
http://www.youtube.com/watch?v=LBnPfAtswgw
希望这肯定能解决你的问题.
| 归档时间: |
|
| 查看次数: |
4829 次 |
| 最近记录: |