-1

我正在开发一个应用程序,在单击表格单元格时,我正在显示带有“信息”按钮的 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。

4

1 回答 1

0

1. readInfo.label.text 返回 null。因为此时xib中的label还没有渲染出来。为了解决这个问题,可以在 pushViewController 之后分配文本。

但我更愿意在 initWithNib 方法中传递文本。可能会创建另一个方法 initWithNibName:@"xxx" text:@"Info of table cell"; 将其存储在 InfoViewController 中,并在 viewDidLoad 中将此文本分配给它。

2.当关闭那个InfoViewController时你调用了什么方法?

[myAppDelegate.navController popViewController] 

这应该可以解决问题。

于 2014-11-18T09:43:05.257 回答