首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >didSelectRowAtIndexPath问题

didSelectRowAtIndexPath问题
EN

Stack Overflow用户
提问于 2010-08-18 16:24:46
回答 2查看 734关注 0票数 0

我有一个在测试中遇到的问题,但现在在一个更大的应用程序中,我似乎无法解决。

首先,我有一个有六个按钮的视图,每个按钮加载一个我正在使用的不同视图:

代码语言:javascript
复制
- (IBAction)showInfo2:(id)sender {
InfoViewController *Infocontroller = [[[InfoViewController alloc] initWithNibName:@"InfoView" bundle:nil] autorelease];
Infocontroller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:Infocontroller animated:YES];
}

这似乎运行得很好,并加载了下一节,在本例中是“infoview”。然后,我加载一个表视图并填充来自xml提要的全部数据,现在又可以正常工作了(尽管对我来说不是一件容易的任务!)。

问题来了,当我知道尝试和使用:似乎什么都没有发生,即,新的视图没有加载。

代码语言:javascript
复制
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

// Navigation logic may go here -- for example, create and push another view controller.
SubInfoViewController *subInfoViewController = [[SubInfoViewController alloc] initWithNibName:@"SubInfoView" bundle:nil];
[self.navigationController pushViewController:subInfoViewController animated:YES];
[subInfoViewController release]; 
}

我知道它是被调用的,因为它是有效的:

代码语言:javascript
复制
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

NSString *message = [[NSString alloc] initWithFormat:@"You selected a row"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Row Selected" message:message delegate:nil cancelButtonTitle:@"Yes I did" otherButtonTitles:nil];
[alert show];

[message release];
[alert release];
}

欢迎任何帮助,并请新手温文尔雅:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-18 21:55:16

您的视图可能是推入导航堆栈,但您看不到它,因为您的父视图是模式视图。

您不能尝试这样显示您的SubInfoViewController:

代码语言:javascript
复制
SubInfoViewController *subcontroller=[[SubInfoViewController alloc] initWithNibName:@"SubInfoViewController" withBundle:nil];
[self presentModalViewController:subcontroller animated:YES];
[subcontroller release];

如果你想在你的应用程序中保留一个导航逻辑,你不应该以模态的方式显示你的InfoViewController,而是在你的导航堆栈中以一种通用的方式呈现它。

您可以尝试在推送SubViewController之前关闭您的模式视图。在这种情况下,您必须执行以下操作:

代码语言:javascript
复制
SubInfoViewController *controller=[[SubInfoViewController alloc] initWithNibName:@"SubInfoViewController" bundle:nil];
[self.parentViewController pushViewController:controller animated:YES];
[self dismissModalViewControllerAnimated:YES];
[controller release];

您将收到一条警告,因为parentViewController可能不会响应pushViewController: animated:,但是对于NSLog,您将看到您的parentViewController实际上是一个UINavigationController

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2010-08-18 16:26:45

到底是什么问题呢?乍一看,您的代码看起来很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3510198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档