문제

나는 첫 번째 실제 iPhone 응용 프로그램을 사용하면서 약간의 어려움을 겪었으며 이것이 어떻게 구성되어야 하는지에 대한 조언을 얻고 싶었습니다.저는 UI 구성요소를 생성하고 이를 서로 연결하여 애플리케이션 흐름을 생성하는 측면에서 몇 가지 모범 사례를 찾고 있습니다(프로그래밍 방식으로 뷰/컨트롤러 생성 vs.인터페이스 빌더 등...).

개요:
애플리케이션 시작 시 "로그인" 보기를 표시해야 합니다.
--가입 버튼을 클릭하면 '가입' 보기가 표시됩니다.

일단 로그인하면...4개의 뷰를 로드하는 TabBarController가 있습니다.이 4개의 보기는 하위 보기(마스터-세부 사항과 같은)를 로드해야 합니다.

내 질문은 다음과 같습니다
1) 이 탐색 구조를 하나로 묶는 가장 좋은 방법은 무엇입니까?해당 ViewController를 사용하여 각 뷰를 .xib로 생성하시겠습니까?이것들은 어떻게 서로 붙어 있습니까?

2) 로그인/가입 탐색을 어떻게 처리해야 합니까? 시작 시 TabBar가 표시되어서는 안 되지만 사용자를 인증한 후에는 TabBar가 필요합니다.

보너스 포인트) 이런 종류의 항목에 대한 모범 사례가 문서화되어 있습니까?나는 실행 가능한 코드를 함께 해킹해 왔지만 매우 길을 잃었고 올바른 방법으로 다시 시작하고 싶습니다.

나는 이것이 약간 혼란스러울 수 있다는 것을 알고 있습니다. 모든 도움에 감사드립니다.

편집하다:탭 표시줄 상단의 로그인 보기에 대해 저는 이것을 매우 간단하게 사용했습니다.

LoginViewController *loginViewController = [[LoginViewController alloc] init];
[loginViewController initWithNibName:@"Login" bundle:nil]; 
[self.tabBarController presentModalViewController:loginViewController animated:YES];
도움이 되었습니까?

해결책

Xcode에서 새 탭 기반 응용 프로그램을 만들 때 원하는 방식으로 이미 설정되어 있습니다. 별도의 XIB 파일에서 각 탭의 뷰를로드하는 기본 XIB가 있습니다. 탭 당 하나의 XIB가 있습니다. 유형을 변경하거나 탭을 추가 할 때 탭 막대와 XIB와 XIB에서 뷰를 만들기 위해 사용하는 XIB에서 적절한보기 컨트롤러 유형을 지정해야합니다!

로그인보기의 경우 일반적인 접근 방식은 위와 같이 탭 막대를 사용하는 것이지만, 앱 대의원에서는 ApplicationDidFinishLaunching 메소드에서 로그인 화면을 표시하는 모달보기 컨트롤러를 표시합니다. 모달 컨트롤러는 탭 막대와 다른 모든 것을 숨길 때까지 해고 될 수 있습니다.

다른 팁

1)이 내비게이션 구조를 함께 조각하는 가장 좋은 방법은 무엇입니까? 해당 ViewController를 사용하여 각보기를 .xib로 만듭니다. 이것들은 어떻게 결합되어 있습니까?

사용 UINavigationController 필요에 따라 사용자 정의 뷰를 내비게이션 스택으로 밀어 넣으십시오. Xcode를 통해 예제 탐색 컨트롤러 응용 프로그램을 확인하십시오. 새로운 과제 이것이 어떻게 작동하는지에 대한 느낌을 얻는 옵션.

2) 로그인/가입 내비게이션을 처리 해야하는 방법, 시작시 탭 바를 표시해서는 안되지만 사용자를 인증 한 후에는 필요합니다.

로그인 뷰를 설정합니다 (나는 UITableView 사용자 이름과 비밀번호에 대해 두 개의 행이 포함 된 한 섹션이 있지만 이것이 제 자신의 선호도입니다). 가입 필드에 대한 두 번째, 별도의보기를 설정합니다 (다시, 나는 UITableView 이를 위해 레이아웃을 깨끗하고 일관성있게 유지합니다).

아마도 뷰 애니메이션을 사용하여 성공적인 인증 후에 탭 막대를 팝업 할 수 있습니다.

보너스 포인트) 이런 종류의 모범 사례가 있습니까? 나는 몇 가지 실행 가능한 코드를 해킹 해 왔지만 매우 길을 잃었고 올바른 방법으로 시작하고 싶습니다.

당신은 당신의 프로젝트를 여러 번 다시 쓰게 될 것입니다 - 좋은 일입니다. Apple의 샘플 응용 프로그램 (iPhone ADC 사이트에서 제공)을 확인하십시오. 여기에는 여러 가지 "모범 사례"방법이 포함되어 있으므로 UIKit 구성 요소. 더 큰 애플리케이션을 구성하기 위해 디자인을 가능한 한 간단하게 유지하고 가능한 많은 Apple의 UI 구성 요소를 재사용하십시오. 나중에 언제든지 사용자 정의 할 수 있습니다.

내 생각에는 Cocoa 프로그래밍 예제와 매우 간단한 애플리케이션만이 단일 nib 파일에 적합하다고 생각합니다.그렇지 않으면 인터페이스 구성 요소를 여러 펜촉에 분산시켜야 합니다.이는 각 펜촉이 더 작으며 메모리에 로드될 때 필요한 구성 요소만 로드한다는 의미입니다.이렇게 하면 애플리케이션의 성능이 향상되고 프로그램을 논리적으로 구성하는 데 도움이 되며 문제가 발생할 때 디버깅하기가 더 쉬워집니다.

내 탭바 앱에서는 MainWindow.xib를 사용하여 메인 창과 탭바를 포함하지만 위의 이유로 각 탭을 별도의 펜촉으로 나눕니다.

Apple은 다음과 같은 지침을 제공합니다.

nib 파일을 생성할 때 다음 지침을 염두에 두십시오.

지연 로딩을 염두에 두고 nib 파일을 디자인하세요.지금 당장 필요한 객체만 포함된 nib 파일을 로드하도록 계획하세요.

Mac OS X 애플리케이션의 기본 nib 파일에서는 애플리케이션 메뉴 표시줄과 선택적인 애플리케이션 위임 개체만 nib 파일에 저장하는 것이 좋습니다.애플리케이션이 시작될 때까지 사용되지 않을 창이나 사용자 인터페이스 요소는 포함하지 마세요.대신 해당 리소스를 별도의 nib 파일에 배치하고 실행 후 필요에 따라 로드하세요.

반복되는 사용자 인터페이스 구성 요소(예: 문서 창)를 별도의 nib 파일에 저장합니다.

가끔씩만 사용되는 창이나 메뉴의 경우 별도의 nib 파일에 저장하세요.별도의 nib 파일에 저장하면 리소스가 실제로 사용되는 경우에만 메모리에 로드됩니다.

자세한 내용은 다음을 방문하세요.

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html#//apple_ref/doc/uid/10000051i-CH4

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top