Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
undestroyer
0 / 0 / 3
Регистрация: 24.03.2013
Сообщений: 53
#1

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

19.05.2013, 16:27. Просмотров 1444. Ответов 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:поправил косячок в коде
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 16:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программно создать Buttons и Popover (Программирование iOS):

Выплывающее меню по нажатию кнопки (popover?)
Добрый день! Изучаю свифт, сейчас столкнулся с проблемой, по кнопке выбора фото...

Создать NSCollectionView программно
Весь интернет перерыл, но так и не нашел примера использования NSCollectionView...

Создать кнопку на другом View программно
Есть 2 View. При нажатии пользователем кнопки на первой вьюшке, нужно, чтобы...

Создать класс Buttons
требуется создать класс, (скорее всего это делается через наследование, но я не...

Как программно создать Label на Frame, которая программно создана на UserForms
Всем доброго времени суток! Программно создать Frame на UserForms можно...

Like Popover
Здраствуйте помогите пожалуйста разобраться с проблемой, имеется кнопка с...

6
alexpac26
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 14:17 #2
тот же поповер, но с разным содержимым
если содержимое будет разное то и popover'ов будет не один а 2

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

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

еще как вариант можно обратиться к viewcontroller который сейчас валяется внутри popover по свойству [popover contentViewController]
и перед тем как показывать изменить у него что либо внутри
0
undestroyer
0 / 0 / 3
Регистрация: 24.03.2013
Сообщений: 53
20.05.2013, 18:28  [ТС] #3
Цитата Сообщение от alexpac26 Посмотреть сообщение
если содержимое будет разное то и popover'ов будет не один а 2
думаю в моем случае хватит и одного. под "разным содержимым" я понимал один и тот же шаблон, но с разным наполнением (на вьюшке для поповера есть элементы: лейбл и картинка, значения которых изменяются в зависимости от того какая кнопка вызвала этот поповер).
функция showPopover правильная? у меня после ее вызова симулятор почему-то вылетает с ругательствами на селектор
0
alexpac26
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
21.05.2013, 10:38 #4
popover какбы только на ipad работает
0
undestroyer
0 / 0 / 3
Регистрация: 24.03.2013
Сообщений: 53
21.05.2013, 18:17  [ТС] #5
Цитата Сообщение от alexpac26 Посмотреть сообщение
popover какбы только на ipad работает
ну так и есть, запускаю на симуляторе айпада
0
alexpac26
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
21.05.2013, 19:19 #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
0
Вложения
Тип файла: zip test_popover.zip (80.2 Кб, 15 просмотров)
perlik
38 / 38 / 1
Регистрация: 26.01.2013
Сообщений: 140
22.05.2013, 23:12 #7
Мне как раз недавно пришлось создать копию своего UIVIew со всеми кнопками руками. в том же положении. мучительно но прикольно
0
22.05.2013, 23:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 23:12
Привет! Вот еще темы с решениями:

Popover placement bootstrap (arrow)
Всем привет. Я решил создать данную тему, так как нуждаюсь в вашей помощи. ...

Всплывающее окно с помощью Popover
Добрый день, знатоки! Хотел бы задать Вам вопрос, так как не могу его решить...

Focus на поле input при открытии popup window (bootstrap popover)
Есть кнопка на сайте, при нажатии открывается popover окошко, с полем input в...

Программно создать БД
в С++ относительно новичёк, с базами данных работал только в сайтах(т.е...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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