Возможно ли обычная UIActivity с иконкой закладки?

1 FlyingPiMonster [2014-11-28 04:01:00]

Часть моего приложения iOS - просмотрщик файлов с помощью UIActivityViewController. Из этого я хотел бы, чтобы пользователи могли делать нормальные действия с файлом, например, отправлять его по почте, сохранять его на фотографиях (если это фотография) и все остальное. Однако у моего приложения есть функция закладок. Я хотел бы, чтобы пользователи могли добавлять закладки в это меню. Я создал пользовательский UIActivity, чтобы добавить объект в список закладок, но мне не удалось выяснить, как использовать значок системной закладки. Возможно ли это?

EDIT: для пояснения это находится в меню, которое вы получаете, когда вы нажимаете кнопку "Поделиться".

user-interface ios uiactivityviewcontroller


1 ответ


0 soulshined [2014-11-28 08:23:00]

Очень просто. Все зависит от того, как вы его инициируете, это в навигационном контроллере, жестом салфетки, элементе панели инструментов или просто обычной кнопке? В любом случае это не имеет значения, но если вы хотите получить конкретный ответ, вам придется задать конкретный вопрос.

Вот пример того, как выполнить свою цель, используя кнопку закладки, которая подключена в интерфейсе Storyboard, однако IBActions для addToFav и загрузка не являются интерфейсом и не должны быть:

-(IBAction) moreActions:(id)sender {
UIActionSheet *moreActions = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Add To Favorites", @"Download For Offline View",@"Open Document In :", nil];
[moreActions showInView:self.view];
}

И способ, которым вы выполняете действия, - это вызов метода ниже:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

switch (buttonIndex) {
    case 0: [self addToFav:self]; //See IBAction below
        break;
    case 1: [self download:self]; //See IBAction below
        break;
    case 2: {
        //UIDocumentInteractionController:

        NSURL *docURL = [NSURL URLWithString:@"filePathStringHere"];

        documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:docURL];
        [documentInteractionController setDelegate:self];
        [documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
    }
        break;
}

}

 - (IBAction)download:(id)sender {
//enter your download code here
}

- (IBAction)addToFav:(id)sender {
//Code to add to your favorites
}