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