2016-11-01 13 views
0

Я пытаюсь отключить взаимодействие пользователя с представлением из одного представления. Ниже мой код.отключить элементы UIview из другого представления в ios

DashboardViewControler.m

if([selectedTitle isEqual:@"VIEW"]) 
    { 
    LatLongViewController * latview =[[LatLongViewController alloc]init]; 
    latview.view.userInteractionEnabled = NO; 
    [self performSegueWithIdentifier:@"SWRevealViewController" sender:self]; 
    } 

В latview, у меня есть UITextField и UILabel. Я хочу отключить взаимодействие с пользователем во время совпадений со сценарием. Любая помощь будет оценена.

+0

Почему бы вам не отключить текстовые поля, чтобы пользователь не мог их получить после отключения. В противном случае вы можете установить latView на скрытое. – MacUserT

ответ

2
latview.view.userInteractionEnabled = NO; 

Вы не можете сделать это с IBOutlet. Все IBOutlet: эксплуатируется ViewController. Вот мое решение:

-Создание новый BOOL в LatLongViewController.h файл:

@property BOOL editMode; 

DashboardViewControler.m

if([selectedTitle isEqual:@"VIEW"]) 
    { 
    LatLongViewController * latview =[[LatLongViewController alloc]init]; 
    latview.editMode = NO; 
    [self performSegueWithIdentifier:@"SWRevealViewController" sender:self]; 
    } 

LatLongViewController.m

- (void)viewDidLoad { 
     if(_editMode == NO){ 
      view.userInteractionEnabled = NO; 
     } 
    } 

Я думаю, вы должны использовать textfield.enable = NO;, если у вас есть только один UITextField на этом представлении.

0

Предполагая, что ваш UIViewController владеет соответствующим видом как свойства:

yourTextfield.userInteractionEnabled = NO; 

начинающих руководство, как подключить вид IBOutlet из Storyboard можно найти here.

Чтобы отключить взаимодействие с пользователем для всех подвидов, перебирать их:

for (UIView *view in [self.view subviews]) { 
    view.userInteractionEnabled = NO; 
} 
+0

Можно ли отключить все элементы в UIview? –

+0

Обновленный ответ – shallowThought