单击 UIActionSheet 中的按钮启动 UIPopover

Launch a UIPopover on click of a button inside UIActionSheet

在我的 Table 视图中向左滑动一行,我有两个 UITableViewRowAction 按钮(删除和更多)。单击 More 按钮时,我将显示一个 UIActionSheet,其中包含两个按钮,分别名为 Edit NickNameEdit照片 像这样:

现在我正尝试在单击“编辑昵称”时启动 UI弹出窗口。为此,我使用以下代码:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex];    

    if ([buttonTitle isEqualToString:@"Edit NickName"]) {
        NSLog(@"Edit NickName");
        UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"SplitView" bundle:nil];
        EditNickNameViewController *popVC = [secondStoryBoard instantiateViewControllerWithIdentifier:@"EditNickNameViewController"];

        popover = [[UIPopoverController alloc] initWithContentViewController:popVC];
        popover.delegate=self;
        popover.popoverContentSize = CGSizeMake(600, 300);
        [popover presentPopoverFromRect:CGRectMake(20,20, 0, 0) inView:self.view
           permittedArrowDirections:0 animated:YES];



    }
    if ([buttonTitle isEqualToString:@"Edit Image"]) {
        NSLog(@"Edit Image");
    }
}

上面的代码在任何普通 UIButton 的 IBAction 中运行良好,但在这种情况下它没有显示任何弹出窗口。

上面的代码行正在运行时执行,但没有任何反应。

任何人都可以告诉我是否可以做这样的事情,或者我在这里做错了什么。如果不可能,请建议我如何在单击 Edit NickName 按钮时启动类似弹出窗口的替代方法。

提前致谢!

在主队列中显示您的弹出窗口;

dispatch_async(dispatch_get_main_queue(), ^{
       [popover presentPopoverFromRect:CGRectMake(20,20, 0, 0) inView:self.view
           permittedArrowDirections:0 animated:YES];
    });