2017-12-04 20 views
0

.text 속성을 다른 viewController 클래스에 설정하려고 시도했지만 설정되지 않습니다. 어떻게 segue를 사용하지 않고도이 결과를 얻을 수 있습니까?presentViewController 메서드를 사용하여 다른 VC의 속성을 설정하십시오.

AccountTypeVC *vc = (AccountTypeVC *)[mainStoryboard instantiateViewControllerWithIdentifier:@"AccountTypeVC"]; 
AccountTypeVC.serviceTitle.text = [tableData objectAtIndex:indexPath.row]; 
[self presentViewController:vc animated:NO completion:nil]; 

그것은 instantiateViewControllerWithIdentifier 결국 UI 요소가 초기화되었는지 필요 없어 .h@property (strong, nonatomic) IBOutlet UILabel *serviceTitle;

답변

4

AccountTypeVC. 보기 컨트롤러의 viewDidLoad이 호출되면 모든 UI 요소를 데이터로 바인딩하는 것이 좋습니다.

AccountTypeVC에 다른 속성을 추가하십시오.

@property (strong, nonatomic) NSString *serviceTitleText; 

그리고 viewDidLoad 방법으로 레이블을 지정하십시오.

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.serviceTitle.text = self. serviceTitleText; 
} 

그리고는 AccountTypeVC을 제시하기 전에 serviceTitleText 재산 대신 라벨을 설정합니다.

AccountTypeVC *vc = (AccountTypeVC *)[mainStoryboard instantiateViewControllerWithIdentifier:@"AccountTypeVC"]; 
vc.serviceTitleText = [tableData objectAtIndex:indexPath.row]; 
[self presentViewController:vc animated:NO completion:nil]; 
+0

이제 NSString을 NSMutableArray로 변경했는데 왜 작동하지 않습니까? – AsimRazaKhan