프로그래밍 방식으로 스토리 보드 ID를 얻습니까?
UIViewController 또는 UIView가 스토리 보드 ID를 식별 할 수 있는지 확인하려고합니다. 그래서 기대했습니다.
UIViewController *aViewController;
NSString *storyboardID = aViewController.storyboard.id; //not an actual property
또는:
NSString *storyboardID = [aViewController.storyboard valueForKey:@"storyboardId"]; //also not a working call
그러나 기쁨은 없으며 온라인에서 유사한 솔루션을 찾을 수 없습니다. 이것이 가능한지 아는 사람이 있습니까?
restoreIdentifier를 사용할 수 있으며 Storyboard 식별자 바로 위에 있으며 UIViewController 속성입니다.
복원 ID를 사용할 수 있습니다.
NSString *restorationId = self.restorationIdentifier;
'스토리 보드 ID 사용'확인란을 선택하세요.
스토리 보드 ID는 스토리 보드에서 VC를 찾고 인스턴스화하기위한 것입니다. UIStoryboard 참조에 쓰여진대로 :
"이 식별자는 뷰 컨트롤러 개체 자체의 속성이 아니며 스토리 보드 파일에서 뷰 컨트롤러를 찾는 데만 사용됩니다."
왜 필요합니까?
다음과 같이 시도 할 수도 있습니다.
NSString *storyboardId = [viewController valueForKey:@"storyboardIdentifier"];
이것은 인터페이스 빌더를 통해 설정 한 스토리 보드 ID를 정확하게 제공합니다.
Swift 확장 :
extension UIViewController {
var storyboardId: String {
return value(forKey: "storyboardIdentifier") as? String
}
}
UIViewController 또는 UIView의 "id"를 반환하는 가장 신뢰할 수있는 방법은 다음과 같습니다.
NSString *viewControllerName = [[NSString alloc] initWithString:viewController.nibName];
"29w-Ic-LNo-view-FDu-oq-UpZ"가 반환됩니다. 여기서 "29w-Ic-LNo"는 UIViewController의 개체 ID이고 "FDu-oq-UpZ"는 개체 ID입니다. UIView.
그러나, 당신은 또한 사용할 수 있습니다 ...
NSString *viewControllerName = [[NSString alloc] initWithString:viewController.title];
그러면 Attributes Inspector에서 UIViewController의 "Title"이 반환됩니다. UIViewController에 Storyboard ID를 추가 한 것처럼 쉽게 제목을 추가 할 수도 있습니다.
클래스 이름과 비교할 수 있습니다. 클래스를 가져온 다음 시도하십시오.
NSArray *viewControllers = self.navigationController.viewControllers;
UIViewController *root = [viewControllers objectAtIndex:0];
if ([root isKindOfClass:[UserLogin class]]) {
//--- do ---
}
참고 URL : https://stackoverflow.com/questions/13708660/programmatically-get-a-storyboard-id
'Nice programing' 카테고리의 다른 글
MDB (액세스) 파일을 MySQL (또는 일반 SQL 파일)로 어떻게 변환 할 수 있습니까? (0) | 2020.10.28 |
---|---|
NPOI를 사용하여 파일을 읽는 방법 (0) | 2020.10.28 |
포인터 값은 다르지만 동일하게 비교됩니다. (0) | 2020.10.28 |
Ansible : 현재 대상 호스트의 IP 주소 가져 오기 (0) | 2020.10.28 |
람다 미적분을 아는 것이 얼마나 도움이됩니까? (0) | 2020.10.28 |