Objective c - UIActivityViewController orientation mode

前端 未结 4 1443
鱼传尺愫
鱼传尺愫 2021-01-21 09:40

My iPhone app is design to support portrait orientation only, except one view controller that present photos, and support landscape mode as well.

So overall my project

相关标签:
4条回答
  • 2021-01-21 10:29

    i had similar problems in the app i am currently developing. i ended up overwriting more of the rotation methods to make sure my own viewcontroller stays in portrait.

    that's what worked for me (IOS5+):

    - (BOOL) shouldAutorotate {
        return YES;
    }
    
    - (NSUInteger)supportedInterfaceOrientations {
        return UIInterfaceOrientationMaskPortrait;
    }
    
    - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
        return UIInterfaceOrientationPortrait;
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation)interfaceOrientation {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    

    if you are pre ios5 or that's not working for you have a look at: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

    hope you get it to work. :)

    0 讨论(0)
  • 2021-01-21 10:36

    May be u should try

    - (void)viewWillAppear:(BOOL)animated
    {
       [self shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];
       [super viewWillAppear:animated];
    }
    

    on your view?

    0 讨论(0)
  • 2021-01-21 10:38

    You should make another uinavigationcontroller and present uiactivityviewcontroller from there. In this code _image is a UIImage yo wan to share. BlankViewController is just place holder viewcontroller you can create in IB you can also make it's view's background colour to clear and do what ever appearance changes you want to do.

    __weak  CurrentViewController  *weakSelf    =   self  ;
    
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[_image] applicationActivities:nil]   ;
    UIViewController        *viewC  =   [[UIViewController alloc] initWithNibName:@"BlankViewController" bundle:nil] ;
    UINavigationController  *navC   =   [[UINavigationController alloc] initWithRootViewController:viewC]  ;
    activityViewController.completionHandler = ^(NSString *activityType, BOOL completed)
    {
        [weakSelf dismissViewControllerAnimated:NO completion: ^ {
            ;    // Your completion handler
        }]  ;
    };
    [self presentViewController:navC animated:NO completion: ^ {
        [navC presentViewController:activityViewController animated:YES completion: ^ {
            ;
        }]  ;
    }];
    
    0 讨论(0)
  • 2021-01-21 10:38

    Couldn't found a solution to this problem, so I ended up implementing my own email UIActivity subclass...

    0 讨论(0)
提交回复
热议问题