2013-07-18 4 views

답변

11

스토리 보드를 통해 가장 간단한 방법의 인스턴스를 생성하거나 segues의 UIViewController 클래스에서 작업하는 경우는 다음과 같습니다

당신이 UIViewController에

에 UIView의 클래스에있는 경우
UIStoryboard *storyBoard = self.storyboard; 

UIResponder *responder = self; 
while (![responder isKindOfClass:[UIViewController class]]) { 
    responder = [responder nextResponder]; 
    if (nil == responder) { 
     break; 
    } 
} 
UIViewController *viewController = (UIViewController *) responder; 
UIStoryboard *storyBoard = viewController.storyboard; 
+7

내가 이름을 얻을 수있는 방법? ? – wod

-2

그냥 이렇게,이 쿼리 해결할 수

NSString *storyboardName; 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    storyboardName = @"iPad"; 
} else { 
    storyboardName = @"iPhone"; 
} 
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil]; 
+0

내 질문을 이해하지 못할 수도 있습니다. 스토리 보드의 이름을 설정하지 않은 이름을 알고 싶습니다. – wod

+0

이 링크를 통과 했습니까? http://stackoverflow.com/questions/14928817/identify-which-storyboard-is - 액티브 –

28

건물 위의 Durican의 대답에 :보기 컨트롤러 내에서

:

UIStoryboard * storyboard = self.storyboard; 
NSString * storyboardName = [storyboard valueForKey:@"name"]; 

(이름은 ".storyboard"파일 이름 확장자를 포함하지 않습니다.)

+0

완벽한 솔루션. 감사. – VaporwareWolf

+0

질문. 어떻게 이걸 생각해 냈어? 이 문서는 이름 속성에 대해서는 아무 것도 말하지 않는다. 모든 키 중 하나를 쿼리하는 방법이 없습니다. IB 라벨에서 찔 렀니? – VaporwareWolf

+0

그냥 완전 추측, 나는 그것을 테스트하고 그것이 나왔다. :) – Xiphias

관련 문제