ios如何在点击uimenuitem时显示模态视图

时间:2014-11-18 09:20:45

标签: ios xcode uitableview uimenucontroller uimenuitem

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

1 个答案:

答案 0 :(得分:0)

1。 readInfo.label.text返回null。因为此时xib中的标签仍未呈现。 要解决这个问题,可以在pushViewController之后分配文本。

但我更喜欢在initWithNib方法中传递文本。 可以创建另一个方法initWithNibName:@“xxx”text:@“表格单元格的信息”; 将它存储在InfoViewController中,并在viewDidLoad中将此文本分配给它。

2。 在解雇InfoViewController时,你调用了什么方法?

[myAppDelegate.navController popViewController] 

这应该可以解决问题。