我正在开发一个应用程序,点击表格单元格我正在使用“信息”按钮显示UIMenuItem。现在点击信息按钮,我必须显示一个视图,并在点击取消时关闭。
在MytableView(自定义tableView)
中-(void)tableView : (UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@"didSelectRow");
UIMenuItem *testMenuItem = [[UIMenuItem alloc] initWithTitle:@"Info" action:@selector(handleInfo:)];
[[UIMenuController sharedMenuController] setMenuItems: @[testMenuItem]];
[[UIMenuController sharedMenuController] update];
}
- (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
// if (action == @selector(handleInfo:))
// {
// return YES;
// }
return NO;
}
- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender {
// required
}
-(IBAction)handleInfo:(id)sender{
InfoViewController *readInfo = [[InfoViewController alloc] initWithNibName:@"InfoViewController" bundle:nil];
readInfo.label.text = @"Info of table cell";
[myAppDelegate.navController pushViewController:readInfo animated:NO];
}
我能够推送视图但无法解除它,传递给readInfo.label.text的值返回null。
答案 0 :(得分:0)
1。 readInfo.label.text返回null。因为此时xib中的标签仍未呈现。 要解决这个问题,可以在pushViewController之后分配文本。
但我更喜欢在initWithNib方法中传递文本。 可以创建另一个方法initWithNibName:@“xxx”text:@“表格单元格的信息”; 将它存储在InfoViewController中,并在viewDidLoad中将此文本分配给它。
2。 在解雇InfoViewController时,你调用了什么方法?
[myAppDelegate.navController popViewController]
这应该可以解决问题。