Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
undestroyer
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 53
#1

Программно создать Buttons и Popover - Программирование iOS

19.05.2013, 16:27. Просмотров 1293. Ответов 6
Метки нет (Все метки)

Здравствуйте, скажите пожалуйста как по нажатию на программно-созданные кнопки показывать один и тот же поповер, но с разным содержимым? (по нажатию на кнопку1 появляется поповер с данными из этой кнопки, по нажатию на кнопку2 появляется точно такой же поповер, но с другими данными) Я не могу прописать появление поповера из созданной кнопки. заполнение информацией сделаю сам

Objective-C
1
2
3
4
5
UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn1 setTitle:@"seat1" forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(showPopover) forControlEvents:UIControlEventTouchUpInside];
btn1.frame = CGRectMake(40, 400, 80, 120);
[_backview addSubview:btn1];
Что прописать в showPopover чтоб показывать поповером визуально созданный в сториборде ViewController?

Добавлено через 3 часа 41 минуту
гугл подсказал написать так:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
- (void)showPopover:(id)sender {
    UIView *anchor = sender;
    UIViewController *viewControllerForPopover = 
        [self.storyboard instantiateViewControllerWithIdentifier:@"pop"];
 
    popover = [[UIPopoverController alloc] 
               initWithContentViewController:viewControllerForPopover];
    [popover presentPopoverFromRect:anchor.frame 
                             inView:anchor.superview 
           permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
Но приложение стало вылетать с ошибкой SIGABRT и в логе появляются
Unrecognized selector sent to instance 0x11efe7e
***First throw call stack ...
Почему ругается на селектор?

Добавлено через 6 минут
UPD:поправил косячок в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 14:17     Программно создать Buttons и Popover #2
тот же поповер, но с разным содержимым
если содержимое будет разное то и popover'ов будет не один а 2

и вызывать каждый отдельно

Objective-C
1
popover = [[UIPopoverController alloc] initWithContentViewController:viewControllerForPopover];
вот эта конструкция создает один контроллер и изменить его уже НЕЛЬЗЯ только создать такойже в другой переменной

еще как вариант можно обратиться к viewcontroller который сейчас валяется внутри popover по свойству [popover contentViewController]
и перед тем как показывать изменить у него что либо внутри
undestroyer
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 53
20.05.2013, 18:28  [ТС]     Программно создать Buttons и Popover #3
Цитата Сообщение от alexpac26 Посмотреть сообщение
если содержимое будет разное то и popover'ов будет не один а 2
думаю в моем случае хватит и одного. под "разным содержимым" я понимал один и тот же шаблон, но с разным наполнением (на вьюшке для поповера есть элементы: лейбл и картинка, значения которых изменяются в зависимости от того какая кнопка вызвала этот поповер).
функция showPopover правильная? у меня после ее вызова симулятор почему-то вылетает с ругательствами на селектор
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
21.05.2013, 10:38     Программно создать Buttons и Popover #4
popover какбы только на ipad работает
undestroyer
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 53
21.05.2013, 18:17  [ТС]     Программно создать Buttons и Popover #5
Цитата Сообщение от alexpac26 Посмотреть сообщение
popover какбы только на ipad работает
ну так и есть, запускаю на симуляторе айпада
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
21.05.2013, 19:19     Программно создать Buttons и Popover #6
сабж

размер popover контроллера меняется через StoryBoard

Программно создать Buttons и Popover

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#import "ViewController.h"
#import "PopOverController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    id vc = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"PopOverController"];
    
    _pop = [[UIPopoverController alloc] initWithContentViewController:vc];
    
}
 
-(void)viewDidUnload {
    _pop = nil;
}
 
- (IBAction)b1_click:(id)sender {
    
    ((PopOverController*)_pop.contentViewController).lb_title.text = [sender titleLabel].text;
 
    [_pop presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
 
}
 
- (IBAction)b2_click:(id)sender {
    
    ((PopOverController*)_pop.contentViewController).lb_title.text = [sender titleLabel].text;
 
    [_pop presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
    
    
}
@end
Вложения
Тип файла: zip test_popover.zip (80.2 Кб, 15 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 23:12     Программно создать Buttons и Popover
Еще ссылки по теме:
jQuery Focus на поле input при открытии popup window (bootstrap popover)
Visual Basic .NET Программно создать БД
Создать программно СКД 1С
WordPress Создать программно страницу
Visual Basic .NET Программно создать backgroundworker

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
perlik
38 / 38 / 1
Регистрация: 26.01.2013
Сообщений: 140
22.05.2013, 23:12     Программно создать Buttons и Popover #7
Мне как раз недавно пришлось создать копию своего UIVIew со всеми кнопками руками. в том же положении. мучительно но прикольно
Yandex
Объявления
22.05.2013, 23:12     Программно создать Buttons и Popover
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru