2

我正在使用 UIKit 元素和 xib 文件开发一些应用程序。首先,我创建了由表和详细视图组成的主详细信息应用程序。我已经自定义了单元格和详细视图,一切都很好。然后我想添加一个新视图,它的行为就像用户将看到的第一个视图。我创建了新视图,然后想将其添加到应用程序委托中,就像添加了主视图一样。它有效,但详细视图不起作用,我不知道为什么。这里有一些代码让它更清楚。

应用委托:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self customizeAppearance];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
HomeScreenViewController *homescr = [[HomeScreenViewController alloc]initWithNibName:@"HomeScreenViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:homescr];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}

我的新第一个视图有一个按钮:

- (IBAction)goToTableView:(id)sender {
MasterViewController *tableView = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
[self presentViewController:tableView animated:YES completion:nil];
}

它转到 masterViewController 和显示表。然后我单击表中的每个元素,没有任何反应。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
NSLog(@"did select is up");
if (!self.detailViewController) {
    self.detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
}
NSDate *object2 = [array1 objectAtIndex:[indexPath row]];
self.detailViewController.detailItem = object2;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}

NSLog 显示信息,但没有出现详细视图。此外,navigationController 显示在第一个视图中,在表视图中不可见。

有人可以告诉我我做错了什么吗?

提前致谢 :)

4

1 回答 1

2

为什么不在 goToTableView 方法中推送堆栈视图 tableView。在那之后,一切都应该工作:

- (IBAction)goToTableView:(id)sender {
    MasterViewController *tableView = [[MasterViewController alloc]initWithNibName:@"MasterViewController" bundle:nil];
    [self.navigationController pushViewController:tableView animated:YES];
}

有关更多信息,请参阅此主题:推模态视图

于 2012-10-30T22:55:30.663 回答