2014-12-22 2 views
0

У меня есть приложение с 10 различными контрольными точками зрения в контроллере навигации. И у меня есть UIView, который я добавил subview в keyWindow экземпляра sharedApplication.Как сделать UIView глобальным с действиями кнопок

    UIWindow *window = [UIApplication sharedApplication].keyWindow; 
       UIView *myView = [UIView alloc]initWithFrame:CGRectMake(0,self.view.frame.size.width - 80,80,90)]; 

       [window addSubView:myView]; 


UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom]; 

    btn1.frame = CGRectMake(xPos, prevVideoUIView.frame.size.height- 
    [btn1 addTarget:self action:@selector(button1Clicked:) forControlEvents:UIControlEventTouchUpInside]; 
    btn1.hidden = NO; 
    [myView addSubview:btn1]; 

    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom]; 

    btn2.frame = CGRectMake(xPos, prevVideoUIView.frame.size.height- 
    [btn2 addTarget:self action:@selector(button2Clicked:) forControlEvents:UIControlEventTouchUpInside]; 
    btn2.hidden = NO; 
    [myView addSubview:btn2]; 

Я хочу, чтобы доступ MyView throughtOut приложения везде, где я и перемещаться на действие пользователя может поставить эту точку зрения на экране в любой момент времени. Проблема заключается в том, что пользователь переходит на третий уровень навигационного контроллера, и оттуда пользователь добавил этот «myView» в окне в качестве подсмотра. и возвращается к предварительному представлению, а затем касанию кнопок на myView. приложение с ошибками говорит о плохом доступе.

сделайте ответ на эту тему.

С уважением,

Параг

+0

создать одноэлементный класс и добавить в него объект 'UIView', создать экземпляр' UIView' в любом из '' UIViewController''. И теперь, используя этот класс (singleton), используйте этот 'UIView' где угодно. –

+0

thanx vinay !! я точно ищу это – user968597

ответ

1

Всякий раз, когда вы добавляете нужный вид в любой из контроллера зрения, когда этот вид контроллер освобождает от должности/хлопки, на ваш взгляд, также будет выпущен с этой точки зрения контроллера. Это является причиной получения Исключение из плохого доступа.

Вы можете создать класс типа UIView и сделать этот класс Singleton. После инициализации вы можете добавить или удалить свой вид с любого из ваших контроллеров. Используя Singleton Pattern, ваше представление будет глобальным и статическим.

Вы также можете создать свое представление в своем классе AppDelegate и, получив объект делегирования приложения в любом из ваших контроллеров просмотра, вы можете добавить или удалить свой вид.

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