2014-01-18 4 views
0

Я должен отобразить пользовательский запросчик запросов iOS 7-стиля с набором пользовательских кнопок (в частности, фильтр категорий). Для этого я нашел отличный SDCAlertView на GitHub. Мой подход заключается в создании настраиваемого UIViewController, который обрабатывает создание кнопок и кнопка прикосновений, его экземпляра, а затем вставить в предупреждении-х contentView так:SDCAlertView и UIViewController с UIButton

SDCAlertView *alert = [[SDCAlertView alloc] initWithTitle:@"Filter" 
                message:nil 
               delegate:self 
             cancelButtonTitle:@"Clear" 
             otherButtonTitles:@"Filter", nil]; 

GKSecondViewController *vc = [[GKSecondViewController alloc] init]; 
UIView *view = vc.view; 
[alert.contentView addSubview:view]; 
[view sdc_centerInSuperview]; 

[alert.contentView sdc_pinHeight:100]; 
[alert.contentView sdc_pinWidth:100]; 
[alert.contentView setBackgroundColor:[UIColor redColor]]; 

[alert show]; 

Мой контроллер представление (GKSecondViewController) выглядит следующим образом:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     [self.view setBackgroundColor:[UIColor grayColor]]; 
     [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 

     [self.view sdc_pinHeight:100]; 
     [self.view sdc_pinWidth:100]; 

     UIButton *button = [[UIButton alloc] init]; 
     [button setTitle:@"Button" forState:UIControlStateNormal]; 
     [button addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]]; 
     [button setTranslatesAutoresizingMaskIntoConstraints:NO]; 

     [button sdc_pinHeight:100]; 
     [button sdc_pinWidth:100]; 

     [self.view addSubview:button]; 

     [button sdc_centerInSuperview]; 
    } 
    return self; 
} 

- (void)tap:(UIGestureRecognizer *)gesture 
{ 
    gesture.view.backgroundColor = [UIColor blackColor]; 
} 

(Вы, возможно, потребуется SDCAutoLayout тоже.) при нажатии на кнопку в боевой готовности, он выходит из строя без каких-либо намеков на tracelog. Что я пропускаю или делаю неправильно?

ответ

1

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

В вашем случае я бы не использовал GKSecondViewController. Я бы создал кнопки в контроллере представления вашего объекта и использовал цель/действие для разговора с одним и тем же контроллером. Если вы должны использовать GKSecondViewController, то SDCAlertView должен будет поддерживать сдерживание контроллера контроллера, которого нет на данный момент.

Смежные вопросы