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

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

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

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

19.05.2013, 16:27. Просмотров 1263. Ответов 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:поправил косячок в коде
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 16:27     Программно создать Buttons и Popover
Посмотрите здесь:

Как Вы обычно создаете UI? xib, storyboard или программно?
Objective-C Создать кнопку на другом View программно
Создать NSCollectionView программно Objective-C
При первом запуске программно переключиться на второй view controller (его не видно)
Программно изменить положение кнопки/поля/бара
Можно ли программно заблокировать iphone?
Программно прокрутить барабан PickerView
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Еще ссылки по теме:

Как программно узнать версию iOS, в которой запущено приложение?
Создание UIView внутри UIScrollView программно Objective-C
Изменить программно название кнопки Objective-C
Swift Выплывающее меню по нажатию кнопки (popover?)

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

Или воспользуйтесь поиском по форуму:
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
Ответ Создать тему
Опции темы

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