2010-04-10 4 views
1

iPhone에서 매우 오랫동안 프로그래밍하지는 못했지만 문제는 내가 겪는 문제로 천천히 해결하고 있습니다. 불행히도 나는 이것들에 대한 답을 찾을 수 없었습니다.UIButton 및 UIView에서 발생하는 두 가지 문제

Xcode 3.2.2에서 새로운보기 기반 응용 프로그램을 시작하고 즉시 UIView의 하위 클래스 인 myUIView.m 및 myUIView.h 파일을 추가했습니다. Interface Builder에서 기본 UIView의 하위 클래스를 myUIView로 설정합니다.

나는 drawRect 메서드에서 버튼을 만들었습니다.

문제점 하나 : 버튼을 클릭 한 후 화면의 제목 만 표시되는 이유는 무엇입니까?

문제 2 : 버튼이 모달보기를 생성하고 싶습니다. 가능합니까?

#import "myUIView.h" 
@implementation myUIView 
- (void)drawRect:(CGRect)rect { 
// Drawing code 
    button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    button.frame = CGRectMake(0,0,100,100); 
    [button setTitle:@"butty" forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [self addSubview:button]; 
} 

-(void)buttonPressed:(id)sender{ 
    NSLog(@"Button pressed"); 
    //present modal view somehow..? 
} 

내가 첨부 파일을 게시하는 방법을 볼 수 있지만, 사람이 생각하는 경우에 나는 소스를 업로드 할 수 있습니다 도움이 될 것입니다 :

코드는 다음과 같다.

많은 감사, 앤디

답변

1

drawRect은 : 사용자 정의 도면입니다. 그럴 필요가 없을 것입니다. 버튼은 실행 루프의 다음 반복 (즉,보기를 클릭 할 때)에서 아마도 drawRect :을 전송할 때까지 그려지지 않습니다.

보기에 단추가 있으면 IB를 사용하여 단추를 끌거나 drawRect:에서 viewDidLoad으로 코드를 이동하십시오.

[self presentModalViewController:viewController animated:YES]; 

이 버튼을보기 컨트롤러에 전송하는 액션 메소드에서이 작업을 수행합니다 :

는 다음과 같은 방법으로 뷰 컨트롤러에서 모달 뷰를 제시한다. 이렇게하면 응용 프로그램 설계를 살펴 봐야 함을 나타냅니다.

+0

좋습니다. 좋은 방법입니다. 그것은 단추 및 배경 색상, 그냥 제목 또는 배경 이미지를 그릴 것 않습니다 ... 내 두 번째 문제에 대한 아이디어가 있습니까? 감사합니다, – Andy

+0

답변 됨 편집 됨 ... –

+0

viewDidLoad는 UIView의 하위 클래스가 응답하는 메서드가 아닙니다. 대신 단추를 awakeFromNib에 넣습니다. 이제 내 코드는 다음과 같습니다. - (void) buttonPressed : (id) 보낸 사람 { \t newNib * myModalVC = [[newNib alloc] init]; \t [self presentModalViewController : myModalVC animated : YES]; } "myUIView '가'-presentModalViewController : animated : '..."에 응답하지 않을 수 있습니다. ... 프로젝트에 여러 버튼이 동적으로 생성되어야하므로 프로젝트를 만들어야한다고 가정합니다. UIView 하위 클래스에 있지만 UIViewController 필요한 모달보기를 호출 할 수 없습니다 .. * 붙어 : -? * – Andy