Ios 当前视图控制器未显示

Ios 当前视图控制器未显示,ios,objective-c,presentviewcontroller,Ios,Objective C,Presentviewcontroller,当用户单击共享按钮时,我想显示presentViewController,以便将数据共享到whatsapp或其他一些应用程序中。同时,我想在5秒内干掉第二个ViewContrloor 如果用户单击共享按钮或未单击,则第二个ViewController将在5秒后被杀死。如果用户单击共享按钮,我想显示presentViewController,同时我想杀死第二个ViewController。这怎么可能 我试过下面的方法,但不起作用 我在第一个Viewcontroller中实现了共享方法,当用户单击第

当用户单击共享按钮时,我想显示presentViewController,以便将数据共享到whatsapp或其他一些应用程序中。同时,我想在5秒内干掉第二个ViewContrloor

如果用户单击共享按钮或未单击,则第二个ViewController将在5秒后被杀死。如果用户单击共享按钮,我想显示presentViewController,同时我想杀死第二个ViewController。这怎么可能

我试过下面的方法,但不起作用

我在第一个Viewcontroller中实现了共享方法,当用户单击第二个Viewcontroller中的共享按钮时,我在第一个Viewcontroller中调用共享方法,但它仍然没有显示presentViewController

下面是第一个Viewcontroller中的共享方法

    -(void)share:(NSString *)code :(NSString *)brandname :(NSString *)clickid :(NSString *)url{

    NSString *textToShare =[NSString stringWithFormat:@"%@%@%@",@"Install and register ",brandname,@" app  here" ];
    NSString *subText = [NSString stringWithFormat:@"%@%@%@%@%@",@"it's awesome, plus ad me will reward you '",code,@"' on ad me to redeem reward \n\n",@"No ad me? Get ad me \n",@"Link: https://e2by6.app.goo.gl/0RKn" ];
    NSString *longd =[NSString stringWithFormat:@"%@%@",url,clickid];

    //NSURL *long_link=[NSURL URLWithString:longd];

    NSArray *objectsToShare = @[textToShare, longd,  subText];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

    NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                   UIActivityTypePrint,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList,
                                   UIActivityTypePostToFlickr,
                                   UIActivityTypePostToVimeo];

    activityVC.excludedActivityTypes = excludeActivities;

    [self presentViewController:activityVC animated:YES completion:nil];
}
他们有办法做这项工作吗

谢谢。

我正在使用此代码

[activityVC setCompletionWithItemsHandler:^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
        if (completed) {
            //dismiss your viewcontroller here
        }else{
          //dismiss your viewcontroller here
        }
    }];
单击“共享”按钮时不要调用viewcontroller Disclose方法,此时您将获得presentViewController。为ActivityViewController实现编译块当您将数据共享到whatsapp或gmail等中时,编译块将执行。它返回布尔值share是否成功。在该块中,应调用viewcontroller Disclose方法

你的代码变成

   -(void)share:(NSString *)code :(NSString *)brandname :(NSString *)clickid :(NSString *)url{

    NSString *textToShare =[NSString stringWithFormat:@"%@%@%@",@"Install and register ",brandname,@" app  here" ];
    NSString *subText = [NSString stringWithFormat:@"%@%@%@%@%@",@"it's awesome, plus ad me will reward you '",code,@"' on ad me to redeem reward \n\n",@"No ad me? Get ad me \n",@"Link: https://e2by6.app.goo.gl/0RKn" ];
    NSString *longd =[NSString stringWithFormat:@"%@%@",url,clickid];

    //NSURL *long_link=[NSURL URLWithString:longd];

    NSArray *objectsToShare = @[textToShare, longd,  subText];

    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

    NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                   UIActivityTypePrint,
                                   UIActivityTypeAssignToContact,
                                   UIActivityTypeSaveToCameraRoll,
                                   UIActivityTypeAddToReadingList,
                                   UIActivityTypePostToFlickr,
                                   UIActivityTypePostToVimeo];

    activityVC.excludedActivityTypes = excludeActivities;

[activityVC setCompletionWithItemsHandler:^(UIActivityType  _Nullable activityType, BOOL completed, NSArray * _Nullable returnedItems, NSError * _Nullable activityError) {
        if (completed) {
            //dismiss your viewcontroller here
        }else{
          //dismiss your viewcontroller here
        }
    }];

    [self presentViewController:activityVC animated:YES completion:nil];
}

我希望它能帮助您。

您的第一个视图控制器隐藏在第二个视图控制器的下面,因此它无法显示新的视图控制器。您可以做的是使导航控制器呈现一个新的视图控制器,因为它封装了所有其他视图控制器。然后,您的“第二个视图控制器”应该通过自身调用
dismissViewControllerAnimated: