2012-09-22 4 views
0

사용자 이름에 사용자 유형을 입력하고 "이동"을 클릭하고 서버의 해당 사용자 정보가 표시되는 간단한 응용 프로그램 인 경우 UIView을 스왑하는 것이 가장 좋은 것인지 궁금합니다. UIViewController 전체를 바꿔야하나요?UIView 또는 UIViewController 바꿔야합니까?

화면 상단에있는 앱의 라벨 또는 배너이며 사용자의 ID를 입력하는 텍스트 상자와 '이동'버튼이 있습니다. 사용자가 임의의 사용자 이름을 입력하고 "이동"을 탭하면 활동 표시기 (회전 휠)가 있어야하며 비동기 스레드가 데이터를 가져오고 완료되면 사용자 이름 텍스트 상자와 "이동" 버튼이 사용자의 공개 정보에 의해 스왑 아웃됩니다. 앱의 라벨 또는 배너는 실제로 전체 화면의 상단에 위치합니다. (화면의 25 %)

서브 뷰를 스왑하는 것이 가장 좋은 방법일까요, 아니면 전체 ViewController를 스왑 아웃하는 것이 가장 좋은 방법일까요? (어느 쪽이든, 아마도 전환을위한 애니메이션과 함께). 나중에 다른 기능과 화면으로 앱을 확장하려면 어떻게해야합니까? (그런데, UIViewController에 의해, 다음 presentViewController:animated이를 처리하기 위해 최선 반면에 UIView에 의해, 다음 [UIView transitionWithView: ...]이 사용할 수 있는지 것 같다?)

+0

UINavigationController 설명서를 자세히 살펴 봐야합니다. – Till

+0

감사합니다. 앱이 뷰 컨트롤러의 스택을 원하지 않는다면 어떤 뷰에 "자유롭게"점프하는 것이 좋을까요? –

답변

0

내가이 사건에 대한 명확한 "가장 좋은 방법은"정말 없다 생각 . 앱에서 내비게이션 및 일반 사용자 환경을 구조화하는 방법에 대한 문제입니다. 때로는 새로운 ViewController를 푸시하고 때로는보기를 전환하는 것이 이치에 맞습니다.

필자의 경험에 비추어 볼 때, 특히 깔끔한 전환과 사용자 정의 모양을 원할 경우, 동일한 ViewController에서 완전히 다른 여러보기를 관리하는 것은 상당히 번거로운 작업이 될 수 있습니다. ("보기"는 내용이 가득 찬 화면에서보기가 완전히 다른 용도로 "이동"버튼과 정보 섹션 등이있는 텍스트 필드와 같습니다)

다음과 같이 새로운 ViewController를 그것. 특히 나중에 사용자 정보를 표시하는 새로운 기능이나 새로운 방법이있을 수 있습니다. 또한 "진행"버튼이있는 페이지에 활동 표시기를 제시하고 표시 할 실제 정보가 없으면 사용자가 앞뒤로 움직이지 않도록해야합니다.

또 다른 해결책은 ViewController의 뷰 상단에 배너 (화면 높이의 25 %로 상당히 큰 소리로 표시)와 페이지 아래에 페이징 된 스크롤보기가있는 페이지를 표시하는 것입니다. 사용자가 GO를 클릭하면 페이지 2로 스크롤되어 정보가 표시됩니다. 스크롤 뷰의 각 페이지에 하나씩 두 개의 UIView가 있습니다.

그러나 완벽한 답 : 내 2C 그게 전부

를 제공하기 위해 사실상 불가능에 대한 사용자가 얼마나 많은 정보를 모르고

.

관련 문제