您好,我敢肯定,大家都可以回答这个问题,但是因为我很愚蠢,它使我烦恼了。
我有一个数组,可以存储didSelectRowAtIndexPath
行,然后存储NSLog formatSelected。然后,我弹出视图控制器并取消显示formatSelected作为botton标题。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *formatSelected = [[NSString alloc]init];
formatSelected:[format objectAtIndex:indexPath.row];
NSLog(@"this is the format selected %@",formatSelected);
[button2 setTitle:[format objectAtIndex:indexPath.row] forState:UIControlStateNormal];
[navigationControler popViewControllerAnimated:YES];
}
很好
我的问题是,在以前的视图中,新标题的按钮是我有另一个按钮和标签。
我希望能够按下第二个按钮并在标签或NSLog中显示formatSelected String
-(IBAction)printResults{
NSString *fmat = [[NSString alloc]initWithFormat:@"%@",formatSelected];
NSLog(@"%@",fmat);
NSLog(@"nslong button pressed");}
但是NSLog只显示(空)吗?
我有
@property (nonatomic, retain) NSString *formatSelected;
并将其合成。我究竟做错了什么?
最佳答案
您要在方法formatSelected
中将tableView:didSelectRowAtIndexPath:
声明为局部变量。方法退出后,您在此方法中分配给formatSelected
的所有内容将不再可访问。您正在将所选格式分配给此局部变量,而不是属性(及其对应的实例变量)。
使用[self setFormatSelected:[format objectAtIndex:indexPath.row]];
并完全删除NSString *formatSelected...
行。
关于ios - 回顾和发布NSString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11254244/