2011-09-20 6 views
2

나는 기업용 제품을 꽤 많이 발표 한 앱을 가지고있다.
내 앱에서 액세스 할 수 있어야하는 몇 가지 추가 기능이 있습니다.My App 내에서 액세스 할 수있는 메뉴 - 어떻게 코딩합니까?

이 도구 모음의 의도 된 기능은 화면 하단에 작고 조그만 탭으로 표시된다는 것입니다. 탭을 탭하면 메뉴가 위쪽으로 확장되어 (즉, frame.y 속성에 애니메이션 적용) 메뉴에 포함 된 모든 버튼을 누를 수 있습니다.

Tab Hidden

Tab Visible

나는 데 어려움은 앱이 현재 여러 뷰 컨트롤러에 걸쳐있는, 내가 전역이 접근을 필요로하는 코드를 복제하지의 이익을 적절 보일 것입니다 이 ViewController를 만들려면, 다른 뷰 컨트롤러에로드하는 것뿐입니다.하지만이 방법은 모든 계정에서 Apple에서 권장하지 않습니다.

코드를 복제하지 않고이 메뉴 기능을 만들려면 어떻게해야합니까? 나는 몇 가지 시도했지만 내보기에 표시 할 메뉴를 얻을 수 없습니다.

아래에는 지금 내가 갖고있는 것을 보여 드리겠습니다. 도구 모음 빌드

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 

    ToolboxMenu *toolboxMenu = [[ToolboxMenu alloc] init]; 
    [self.view addSubview:toolboxMenu.view]; 
} 

코드 : 어떤 뷰 컨트롤러에 앉을

코드 위의 코드에서

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSLog(@"Creating View"); 
    self.view = [[UIView alloc] initWithFrame:CGRectMake(0,0,88,209)]; 
    self.view.backgroundColor = [UIColor clearColor]; 

    UIImageView *toolboxImage = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"popup_toolbox" ofType:@"jpg"]]]; 
    toolboxImage.frame = self.view.frame; 
    [self.view addSubview:toolboxImage]; 

} 

는 NSLog 화재는 메뉴가 초기화 될 때,하지만 난 참조 메뉴 없음.

답변

2

이것을 모든보기에 주입하지 말고 별도의 UIWindow을 만들고 주 UIWindow 위에 올려 놓는 것이 좋습니다. 이것은 키보드가 구현되는 방법입니다. 이 방법을 사용하면 기존 뷰를 변경하지 않아도됩니다. 장치 회전을 손으로 처리해야하지만 너무 어렵지는 않습니다.

+0

어떻게하면 갈 수 있습니까? 죄송합니다. 다른 UIWindow를 구현하는 방법을 잘 모르겠습니다. –

+0

'self.toolWindow = [[UIWindow alloc] initWithFrame : ....]; self.toolWindow.windowLevel = 1.0;'UIWindow'는 UIView의 서브 클래스라는 것을 기억하십시오. –

+1

이 답변은 관련이있을 수 있습니다. http://stackoverflow.com/questions/2833724/adding-view-on-statusbar-in-iphone – Sukima

0

IIRC Apple의 TabViewController는 위에 설명 된 방식과 반대되는 점에서 다르게 설계되었습니다. TabViewController는 주 형 또는 주형 ViewController이며, 형제가 디스플레이 ViewController입니다. 기본적으로 하나의 TabViewController를 사용하여 뷰간에 탭을 만듭니다.

뷰 계층 구조를 다시 디자인하거나 하위 탭 메뉴를 관리하고 표시하는 클래스로 UIViewController를 확장하는 것이 좋습니다. 그런 다음 각보기에서이를 처리하는 단일 클래스를 쉽게 초기화 할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 문제는 탭을 사용하지 않고 전체 앱을 디자인하고 제작했기 때문에 각 화면의 오른쪽 하단에 '도구 상자'기능에 대한 탐색을 처리하기위한 작은보기를 추가하려는 것입니다. 이 탭은 iPhone SDK 탭이 아니며 브라우저 탭과 비슷하지만 화면 하단에는 최대 20 픽셀까지만 차지합니다. 탭하면 메뉴가 나타나고 메뉴가 표시됩니다. –

+0

원본 질문에 몇 가지 이미지를 추가했습니다. 당신의 솔루션은 여전히 ​​적용됩니까? –

+0

그러면 두 번째 옵션을 사용하여 직접보기를 만들 것입니다. @ Rob Napir은 아래 아이디어를 더 잘 설명합니다. – Sukima

관련 문제