2015-08-24 3 views
0

Мое приложение rss почти завершено, но мне нужно иметь кнопку «share» в правом верхнем углу веб-представления для статей. У меня есть установки кода до сих пор, чтобы показать кнопку «действие» прямо рядом с заголовком статьи, но так как нет реального кода не реализован он не делает ничего:Функция совместного использования для статьи RSS-ленты

enter image description here

Я осуществил что основываясь на коде, который использовался для ячеек таблицы, где есть опция «обновления», и я просто изменил значок. Я использовал бесплатный проект с открытым исходным кодом, чтобы соединить это приложение, и у меня есть небольшая проблема, связанная с тем, как заставить эту кнопку показывать общий листок, который извлекается из нижней части приложения, например:

enter image description here (изображение из Google)

Я пытался реализовать кнопку dirtectly в навигационной панели, но я не могу, так как веб-вид охватывает весь экран:

enter image description here

Так, так как я не мог Не вводите кнопку прямо в контроллер, который мне нужно было закодировать это в примерно так:

В моем RSSDetail.m классе внутри "- (пустоте) viewDidLoad {":

self.navigationItem.rightBarButton = [[UIBarButtonItem = [[UIBarButtonItem  
alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAction target:self 
[email protected](shareButton)]; 

и у меня есть это в том же файле класса:

-(void) shareButton { 

    self.webView.userInteractionEnabled = YES; 
    self.webView.aplha = 0.3; 

    } 

Итак, как вы можете видеть, этот маленький код в этом классе помещает значок, где я его хочу. Но мой вопрос: есть ли код, который я могу реализовать в моем методе «-» (void) shareButton », который будет реализовывать функции совместного использования?

Кроме того, мне нужно, чтобы кнопка на самом деле говорила «Share» в отличие от значка, есть ли в любом случае я могу изменить код для метода «Действие» rightBarButton, чтобы позволить мне вводить слово вместо значка?

Заранее спасибо

ответ

0

Как я понимаю, вы хотите реализовать IOS функциональность родной обмена. Вот пример реализации:

- (void)shareButtonPressed { 
    // 1 
    // If you want to use UIImage, make sure you have image with that name, otherwise it will crash. 
    NSArray *activityItems = @[@"Message to share", [UIImage imageNamed:@"imageToShare"]]; 

    // 2 
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; 

    // 3 
    activityViewController.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypeAirDrop, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypeMessage, UIActivityTypeMail]; 

    // 4 
    [activityViewController setCompletionHandler:^(__unused NSString *activityType, __unused BOOL completed){ 
     // Custom completion implementation 
    }]; 
    [self presentViewController:activityViewController animated:YES completion:NULL]; 
} 

Описание:

  1. Подготовка элементов деятельности, которые вы хотите поделиться такой строки, изображения, URL.
  2. Инициализируйте контроллер вида деятельности с элементами, которые вы хотите использовать + пользовательские действия (только при необходимости). Пользовательские действия означает, что вы создадите свои собственные кнопки, используя UIActivity с собственными действиями, изображениями, заголовками (подробнее here). Например, реализуйте совместное использование стороннего приложения, которое не имеет расширения общего доступа.
  3. Здесь вы можете указать исключенные виды деятельности. В этом примере я удалил все, например, копию, airdrop и т. Д.
  4. В блоке завершения вы можете увидеть, какой тип активности был выбран и отменен ли пользователь.

Более подробную информацию о UIActivityViewController можно найти here.

Касательно второй части Вашего запроса примерно UIBarButtonItem. UIBarButtonItem может быть инициализирован с настраиваемыми название с помощью этого:

UIBarButtonItem *shareButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStylePlain target:self action:@selector(shareButtonPressed)]; 
self.navigationItem.rightBarButtonItem = shareButtonItem; 

Имейте в виду, что UIBarButtonItem имеет UIBarButtonItemStyle, которые вы можете изменить. UIBarButtonItemStylePlain (создаст кнопку с обычным шрифтом) и UIBarButtonItemStyleDone (создаст кнопку с жирным шрифтом).

+0

Спасибо за помощь. Я смог изменить значок на слово «Share», но, насколько я могу кодировать собственную функцию совместного доступа, я не могу понять, что это правильно. Я попробовал код, который вы мне дали, и редактировал его, но когда я нажимаю кнопку совместного доступа я получаю сообщение «Thread 1: signal SIGABRT». Все, что мне нужно, это поделиться заголовком и ссылкой статьи с выбором, который пользователь делает, чтобы разделить его на – Christophorus

+0

Возможно, это потому, что вы не изменили/не удалили ** [ UIImage imageNamed: @ "imageToShare" **. Он дал это только как пример. Убедитесь, что вы указали правильные элементы. Если вы этого не сделаете, приложение попытается инициализировать массив с помощью * nil * объекта и сработает. – gontovnik

+0

Я удалил это, я посмотрел на пример из ссылки, которую вы опубликовали, и заменил ее на некоторые из них. Попытка использовать «feedTitle» и «feedURL» из моего проекта, но все еще ошибки – Christophorus

Смежные вопросы