在我的iOS应用中,用户可以在表格视图中选择主机名。应将此主机名转移到详细视图控制器。
TableViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
UITableView *cell = [self.tableView cellForRowAtIndexPath:indexPath];
NSLog(@"%@", self.cell.textLabel.text);
DPPingViewController *objectOfPingViewController = segue.destinationViewController;
objectOfPingViewController.string = (NSString *)sender;
}
DetailViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.ipAddr.text = _string;
//self.ipAddr.text = @"192.168.178.1";
self.results.text = @"";
NSLog(@"Zelle: %@", _string);
}
的NSLog
2014-07-15 11:52:37.646 EasyTest[3623:90946] Zelle: <UITableViewCell: 0xc17fe30; frame = (0 0; 320 44); text = 'Apple.com'; autoresize = W; layer = <CALayer: 0xc1800c0>>
为什么NSLog只显示&#34; Apple.com&#34;。其他信息来自哪里?
答案 0 :(得分:0)
看起来segue的sender
实际上是UITableViewCell
,而不是你想要的字符串内容,这对你在故事板中如何配置它有意义。您可能希望执行以下操作,而不是将发件人强制转换为NSString:
UITableViewCell *sourceCell = (UITableViewCell *)sender;
objectOfPingViewController.string = sourceCell.textLabel.text;
这应该可以获得实际的字符串内容,而不是整个表格单元格,这是一个带有一堆其他参数的视图类。