Программно подключите кнопки с помощью раскадровки - PullRequest
0 голосов
/ 04 января 2012

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

Впервые я использую раскадровки в своем приложении.

Я выписываю X количество кнопок программно, которые позже будут зависеть от данных из базы данных. Как видно из названия, моя проблема в том, что я использую раскадровку и не могу понять, как создать новое представление в раскадровке, на которое затем могут быть изменены кнопки. А также с некоторыми данными с первого взгляда.

Вот код, который поможет вам мне помочь. ; Р

- (void)viewDidLoad
{
    [super viewDidLoad];

    int heightGrowt = 0;

    for(int i = 0; i < 10; i++)
    {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

        button.frame = CGRectMake(10, heightGrowt, 300, 40);

        heightGrowt = heightGrowt + 50;

        [button setTitle:@"First element" forState:UIControlStateNormal];

        [scrollWiew addSubview:button];
    }

    [scrollWiew setScrollEnabled:YES];
    [scrollWiew setContentSize:CGSizeMake(320, heightGrowt)];
}

Если у вас есть / знаете что-нибудь, что может мне помочь, я был бы очень признателен. :)

Ответы [ 3 ]

4 голосов
/ 07 января 2012
[theUIViewControllerThatYouAreSeguingFrom performSegueWithIdentifier:@"theIdentifier" sender:theViewCallingForTheSegue];

Вы можете назвать последовательность в разделе Атрибуты Инспектора.

1 голос
/ 05 января 2012

Хорошо, основываясь на вашем комментарии, вы на правильном пути.

Чтобы извлечь его из раскадровки, сначала нужно войти в раскадровку, выбрать контроллер представления, который вы хотите извлечь (щелкните желтый кружок с разлинованной бумагой в нем под контроллером представления. необходимо увеличить его, чтобы увидеть его.) и дать полю «идентификатор» (указанному в Инспекторе атрибутов) уникальное имя, которое вы будете использовать для ссылки на этот конкретный контроллер представления. Допустим, мы используем firstViewController для целей этого примера.

В вашей функции buttonPressed: вам нужно будет получить нужный контроллер представления из раскадровки, а затем отобразить его при нажатии правильной кнопки. Я предполагаю, что текущий вид был загружен из раскадровки (и если нет, вам нужно будет получить ссылку на раскадровку другим способом).

 // I'm assuming that the class is UIViewController.  Change this if not.
 UIViewController *aViewController = [[self storyboard] instantiateViewControllerWithIdentifier:@"firstViewController"];  

 // Once you have retrieved it, you display it like you would any other view controller.  
 // I.e. if you want to push it onto a UINavigationController stack you would use:  
 if (aViewController != nil) {  
   [self.navigationController pushViewController:aViewController animated:YES];  
 }
0 голосов
/ 05 января 2012

Каждое представление раскадровки имеет класс UIViewController, установленный так же, как и для отдельного XIB. Создайте новый файл подкласса UIViewController в своем проекте и установите его как свойство «Пользовательский класс - Класс» в Инспекторе утилит IB для соответствующий вид в раскадровке.

Затем вы сможете просто создать экземпляр этого объекта UIViewController, как и когда это необходимо, с помощью вашей кнопки и перенести их в стек NavigationController или переместить его, как вам удобно.

Проверьте эти ссылки на действительно хорошее руководство по раскадровке:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...