我有一个下拉文本字段的代码,这样当用户单击表视图中的一行时,它会推送到下一个视图,但由于某种原因,这不会发生。我的代码有问题吗?因为应用程序没有崩溃我没有错误警告,也不知道为什么它不起作用。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath {
[delegate dropDownCellSelected:indexPath.row];
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSString *cellText = selectedCell.textLabel.text;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:cellText forKey:@"keyToLookupString"];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
ShiftCalculatorViewController *shiftCalculatorViewController =
[[ShiftCalculatorViewController alloc] init];
[self presentViewController:shiftCalculatorViewController animated:YES
completion:nil];
}
答案 0 :(得分:1)
您很可能没有设置UITableView
实例的委托,因此不会调用任何委托方法,例如-didSelectRowAtIndexPath。
[self.tableView setDelegate:self]
答案 1 :(得分:0)
确保您在app delegate中编写了导航控制器代码,并在当前视图控制器中设置了tableview委托,然后编写此
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// in tableview you will be passing information from an array/dictionary in cell configure method so use the same array/dictionary to get information also.
[delegate dropDownCellSelected:indexPath.row];
NSString *cellText = yourArray[indexPath.row];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:cellText forKey:@"keyToLookupString"];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
ShiftCalculatorViewController *shiftCalculatorViewController =
[[ShiftCalculatorViewController alloc] init];
[self presentViewController:shiftCalculatorViewController animated:YES
completion:nil];
}
/// if still app crashes enable exception break point in left menu of your Xcode this will help you to know at which line of code app crashed.