【发布时间】:2014-06-16 11:59:50
【问题描述】:
我正在制作我的第一个应用程序。基本上我在
tableView中有一个菜单。当用户单击一个单元格时,它应该将他们带到另一个显示本地 HTML 内容的视图。它工作正常。
但是我想保存所选行的文本值并将其传递给另一个方法(来自
didSelectRowAtIndexPath: to the prepareForSegue: method)。我已经尝试了很多东西,但似乎 text 变量在某种程度上是
didSelectRowAtIndexPath:方法的本地变量,即使我在标题中声明了它。
那么有人知道我做错了什么吗?
下面是一些代码片段。
头文件:
#import <UIKit/UIKit.h>
@interface SidebarViewController : UITableViewController {
NSString *rowText;
}
@end
实施:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UILabel *mySubNameLabel = (UILabel *)[cell viewWithTag:201];
NSString *rowText = mySubNameLabel.text;
if ([mySubNameLabel.text isEqualToString: @"What is a dataset"]) {
[self performSegueWithIdentifier:@"showLab" sender:cell];
}
return;
}
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
{
if ([segue.identifier isEqualToString:@"showWeb"]) {
NSString *myLabel = rowText ;
ViewController *detailsTVC = [segue destinationViewController];
detailsTVC.label = myLabel; //rowText;
}
}
@end
- 作为最后一点,应该提到的是:*
rowText在第一种方法中返回正确的文本字符串。 - 但是在第二种方法
NSString *myLabel = rowText ;中,它返回值nil。
【问题讨论】:
-
在 didSelectRowAtIndexPath 中,您正在创建一个新变量 rowText,而不是填充您的实例变量 (_rowText = mySubNameLabel.text)。
-
哇,这很容易。谢谢。
标签: ios variables global-variables didselectrowatindexpath