2013-01-24 4 views
0

내 앱에 커스텀 버튼이 많이 필요합니다. 지금은 스토리 보드를 사용하여 필요한 모든 컨트롤러에서이 단추를 정의합니다. 그러나, 나는 내 애플 리케이션에 걸쳐 그들을 필요 이후, 나는 다른보기 컨트롤러 /보기 서브 클래스 UIView 또는 UIViewController 그래서 내가 어떤 변화를 할 필요가보기에 퍼팅 더 좋을 것 같아요 한 번 그들을 반대해야합니다 다른보기 컨트롤러에서. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 또한 어떻게 프로그래밍 방식으로 버튼을 만들 수 있습니까? 이것은 내가 지금하고있는 일이며 완전히 비어있는 화면을 얻고 있습니다.UIView/UIViewController 서브 클래 싱

-(void)viewDidAppear:(BOOL)animated 
{ 
    UIButton *testButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [testButton setFrame:CGRectMake(0, 390, 100, 40)]; 
    [testButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin]; 
    [setImage:[UIImage imageNamed:@"test_button"] forState:UIControlStateNormal]; 
    [setImage:[UIImage imageNamed:@"test_button"] forState:UIControlStateHighlighted]; 
    [setEnabled:YES]; 
    [self.view addSubview:testButton]; 
} 
+4

setImage 및 setEnabled 행은 단추 또는보기 컨트롤러 용입니다. 또한, 당신은 떠나고 있습니까 [super viewDidAppear : animated]; 고의로? –

+0

그 코드는 컴파일되지 않습니다. setImage 및 setEnabled 앞에 testButton이 있어야합니다. 그러면 실제로 작동합니다 (실제로 이미지를 만들었다 고 가정합니다. 그렇지 않으면 버튼이 보이지 않습니다). – rdelmar

+0

Np, superview DidAppear : animated가 있습니다. 붙여 넣기를 잊어 버렸습니다. setImage 및 setEnabled는 버튼 용입니다. 앞 setImage 및 setEnabled에있는 ahve testButton은 무엇을 의미합니까? 당신이 이미지 생성을 말할 때 당신이 말하는 내용이 확실하지 않다면, 이미지를 지원 파일로 가지고 있습니다. –

답변

1

버튼이 표시되는 rect에서 벗어날 가능성이 있습니다. 버튼을 프로그래밍 방식으로 추가하는 경우 대부분 제대로 수행 할 수 있습니다. 또한 이미지에는 파일 확장자가 있어야합니다. customButton을 추가하고 있기 때문에 아무런 이미지가 없으면 버튼이 보이지 않습니다. 단추에 제목을 추가해보십시오. 추가 된 이미지가없는 경우에도 표시됩니다.

아래 코드를 시도해보십시오.

-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; //you must have a good reason to not add this line. 
    UIButton *testButton=[UIButton buttonWithType:UIButtonTypeCustom]; 
    [testButton setFrame:CGRectMake(0, 20, 100, 40)]; 
    [testButton setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin]; 
    [testButton setImage:[UIImage imageNamed:@"test_button.png"] forState:UIControlStateNormal]; 
    [testButton setImage:[UIImage imageNamed:@"test_button.png"] forState:UIControlStateHighlighted]; 
    [testButton setEnabled:YES]; 
    [self.view addSubview:testButton]; 
} 
+0

감사합니다. 이제 이걸 가지고 있는데, 머터 컨트롤러 파일에서해야 할 일은 여러 컨트롤러에서이 버튼을 원하는 점에서이 동작을 상속 받기 위해서입니다. –

+0

나는이 컨트롤러에서 상속받은 동일한 viewController 인스턴스 또는 viewController 인스턴스를 여러 개 갖고 싶어한다고 생각한다. 두 경우 모두, 파생/하위/하위 클래스의 'viewDidAppear (구현중인 경우)에서 [super viewDidAppear : animated]를 호출하면됩니다. 해당 클래스의 testButton이 추가됩니다. –

+0

흠.하지만이 컨트롤러와 다른 컨트롤러 사이의 관계는 어떻게 만듭니 까? 내가 superviewDidappear를 쓸 때처럼 내가이 특정 컨트롤러를 말하는지 어떻게 알 수 있을까? –