2014-04-17 1 views
0

저는 응용 프로그램을 코딩하고 재사용되는 몇 가지보기가 있습니다 (예 : 텍스트 필드, 레이블 및 버튼 포함). 이제 알려 드리겠습니다. 한 번만 "globalviews.m"파일에 만들어서 메인 뷰에 서브 뷰로 추가하십시오. (저는 인터페이스 빌더가 마음에 들지 않습니다.)xib 파일을 사용하지 않고 컨트롤을 사용하여 재사용 가능한 하위 뷰를 만드는 방법

UIView를 구성 요소와 함께 반환하는 함수를 쉽게 만들 수 있지만 물론 컨트롤에 액세스하고 싶습니다.

나는

// making searchview a global thingy 
UIView *seachview ; 

// rest of code here and then in viewdidload: 

UIView *seachview = [[UIView alloc] init] ; 
searchview = [[globaviews alloc] thesearchviews_name] ; 
[self addsubview:searchview] ; 

("searchview"사용에서의 ViewController 글로벌 만들기) 같은 것을 기대했다하지만 내가 어떻게 컨트롤 내부에 쉽게 접근 할 수 있습니다. 좋아요 :

NSString *something = searchview.textviewname.text ; 

아니면 이것은 처음부터 끔찍한 생각입니까? 그냥 코드를 선호하는 방식입니다 ...

+0

문제를 해결 한 답을 위로 표시하고 답을 잊지 마세요. 대답이없는 경우 의견을 남기거나 질문을 편집하여 자세한 내용을 제공하십시오. 같은 문제에 직면 한 사람들은 귀하의 질문을 해결 한 것을 알고 지켜 볼 것입니다. 이 질문을 이렇게 열어두면 누구에게 도움이되지 않습니다 –

답변

1

UIView의 하위 클래스 인 사용자 지정 클래스를 만들 수 있습니다. 그런 다음 각 컨트롤에 속성을 추가 할 수 있습니다 (NSString, NSNumber 등을 추가하는 것과 같은 방식). 또는 데이터를 수정/가져 오기위한 공용 메서드를 만들 수 있습니다.

- (void)setTextFiledColour:(UIColor *)color; 
- (NSString *)getTextFieldText; 

내 개인적인 견해 (많은 경험을 통해)는 인터페이스 작성기를 배우고이를 처리하는 것입니다. 당신이 원하는 것을 할 수 있으며, 많은 사람들이 당신과 동의하고 그렇게하도록 선택할 수 있습니다. 개인적으로 나는 그것이 "바르게"행해진 것을 본 적이 없다. 즉, 인터페이스 빌더가 제공 한 패턴에 들어간 수년 간의 경험과 테스트를 피하면서 자신 만의 패턴과 방법론을 만들 수 있다는 것을 의미합니다.

특히 스토리 보드는 매우 구체적인 패턴 및 스타일의 코딩을 필요로합니다. UI/코드를 추상화 할 수있는 잠재력이 뛰어나고, 나중에 다시 올 수있는 단축키를 사용하지 못하게하고, 다른 누군가가 변경해야하는 경우 모호함이없는 것처럼 큰 실수 인 양식을 옮기는 것이 좋습니다. 당신은 클래스 이름이나 변수 이름 등에서 실수를해서는 안된다.

나는 스토리 보드를 많이 사용해 왔지만 아직 문제가있다. 모든 것을 수작업으로하고 결코 많은 문제를 겪어 본 적이 없으며 이런 방식으로 애플리케이션을 개발하는 데 얼마나 오랜 시간이 걸렸는지에 놀랐습니다.

결국 너에게 달려있다.

주 당신은보기를 생성하고 재사용하고자 언급했다. .xib 파일에서이를 수행하고 그런 식으로 다시 사용할 수도 있습니다. 스토리 보드 어빌리티 중 일부를 잃어 버렸지 만 두 가지 세계를 모두 제공 할 수도 있습니다.

+0

대신 xib 파일을 사용하기로 결정했습니다. 그것은 가장 쉬운 방법 인 것처럼 보입니다. 그리고 제가 생각하기에 "있는 방법"인 것 같습니다. 스토리 보드는 아주 새롭기 때문에 실제로 사용하지 않습니다. 입력 해 주셔서 감사합니다. –

관련 문제