0

我使用的是导航栏,我正在使用的代码改变默认的返回按钮我的按钮,在viewDidLoad中:目标C UIActivityViewController和navigationItem.leftBarButtonItem结合

_backButton =[[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed)]; 
[_backButton setTintColor:[UIColor whiteColor]]; 
[_backButton setImage:[UIImage imageNamed:@"Back-icon.png"]]; 
self.navigationItem.leftBarButtonItem = _backButton; 

而且我有一个的UIButton的份额,当我点击它,这个代码运行:

UIActivityViewController *activityViewController = 
    [[UIActivityViewController alloc] initWithActivityItems:@[@"test"] 
             applicationActivities:nil]; 
    [self presentViewController:activityViewController 
         animated:YES 
        completion:^{ 
}]; 

现在,当我照耀处,以它的外观OK的页面,但是当我点击分享按钮,在UIActivityViewController存在,而在导航中后退按钮,跳到50像素底部 - 像这个图像 enter image description here

当我使用默认的后退按钮,它不是附加。

我尝试将UIActivityViewController的动画打开为NO,但它没有帮助。

可能是什么问题?

感谢

+0

您呈现视图控制器。这是模态视图。如果您需要导航栏自动设置正确,请使用推送导航堆栈。 – Flipper

+0

我想打开它作为模式,它需要打开UIActivityViewController,因为它应该是。并打开它正确 – Nir

+0

当您呈现视图控制器时,它不使用任何导航控制器,因此它没有导航栏。您需要通过storyboard或xib自己添加导航栏。您需要将其添加为视图的子视图,并在使用自动布局时设置框架和约束。如果你想用导航功能呈现它,你需要展示包含你的ActivityViewController的模态导航控制器。 – Flipper

回答

0

设置你的背部按钮:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back_arrow"] style:UIBarButtonItemStylePlain target:self.navigationController action:@selector(popViewControllerAnimated:)]; 

无需创建后退按钮的方法,如果将之前的控制器时,你不更新任何对象的值或任何UI。 如果您将任何操作设置为选择器,则使用相应的目标。

当你现在ActivityController:

- (IBAction)commonSharing:(id)sender 
{ 
    NSString *strTextToShare = @"Hi... Friends"; 
    UIImage *imgToShare = [UIImage imageNamed:@"wall1.png"]; 
    NSURL *urlToShare = [NSURL URLWithString:@"https://www.apple.com"]; 

    UIActivityViewController *shareController = [[UIActivityViewController alloc] initWithActivityItems:@[strTextToShare, imgToShare, urlToShare] applicationActivities :nil]; 
    //shareController.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll]; // If you want to restrict some of apps to sharing 
    [self presentViewController:shareController animated: YES completion: nil]; 

}

+0

我需要将按钮保存在属性_backButton中,所以我使用此代码,基于您的代码,它的帮助,谢谢:_backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@“MyInventory-Back -icon.png“] style:UIBarButtonItemStylePlain target:self action:@selector(backButtonPressed)]; [_backButton setTintColor:[UIColor whiteColor]]; self.navigationItem.leftBarButtonItem = _backButton; – Nir