2012-11-30 2 views
1

나는이 책을 tutorial 아이폰에서 스토리 보드에 대해 읽습니다. 그 사람은 버튼을 통해보기를 변경합니다. 그러나 인터페이스 빌더를 통해 버튼 연결이 이루어집니다. 어떻게 프로그래밍 방식으로 할 수 있으므로보기가 변경되기 전에 일부 검사 (예 : 사용자 이름/암호)를 할 수 있습니까? 미리 감사드립니다. iphone - 프로그래밍 방식으로 버튼을 사용하여보기 변경

답변

2

하나의보기를 다른보기와 연결하십시오 (보기가있는 단추가 아님). segue를 custom로 변경하고 식별자 (IB에서)를 지정하십시오. 예 : 로그인

그런 다음 작업을 생성하고 버튼에 할당하십시오. 버튼 액션 사용에

:

UIViewController *dst = [self destinationViewController]; 
UIViewController *nav = [self sourceViewController]; 

//All your custom code 

[nav presentModalViewController:dst animated:YES]; 

편집 :

[self performSegueWithIdentifier:@"Login" sender:self]; 

거랑 클래스 객체와 같이하는 .m 사용 무언가를 만들기 중요한 무언가를 잊어 버렸!

IB에서는 Segue 구성에서 생성 된 Segue 클래스의 이름 인 Segue 클래스를 넣습니다. 예 : 클래스 만들기 : LoginSegue이 SEGUE 클래스 요에서 만든 SEGUE의 이름은 "LoginSegue"

편집을 작성했다입니다

1 .- UIStoryBoardSegue을 연장하는 새 파일 만들기를의 .H거야 수 무엇인가 : 구현에서

#import <Foundation/Foundation.h> 

@interface LoginSegue : UIStoryboardSegue 

@end 

2 .-,라는 메서드 내 위의 코드를 사용하여 수행 :

-(void)perform 
{ 

UIViewController *dst = [self destinationViewController]; 
UIViewController *nav = [self sourceViewController]; 

//Custom Code 

[nav presentModalViewController:dst animated:YES]; 

} 

당신이 sourc의 속성에 액세스해야하는 경우 전자의 ViewController, 당신은 변경해야

UIViewController *nav = [self sourceViewController]; 

이 도움이 희망

eYourClass *nav = [self sourceViewController]; 

에!

+1

"Segue Class 만들기"란 무엇을 의미하는지 설명 할 수 있습니까? – ozmax

+0

UIStoryBoardSegue의 확장 클래스입니다. 그것을 추가하는 대답을 편집 할거야 – Vertig0

+0

나는 수행 방법을 무시해야한다는 것을 알았다. 내가 그것을 어떻게해야하는지 모든 단서? (btw는 내비게이션 컨트롤러를 사용합니다 - 모달을 사용하고 싶지 않습니다) – ozmax

0

할 수 있습니다 하나의 버튼을 만든 다음 loginTapped 방법을 볼 수 있었다 인터페이스 빌더

또는 코드 어딘가에 viewDidLoad

[self.login addTarget:self action:@selector(loginTapped) forControlEvents:UIControlEventTouchUpInside]; 

에서에서 IBAction에 touchUpInside 액션을 끌어 뭔가

- (void)loginTapped; 
{ 
    if ([self authenticateWithUsername:self.username.text password:self.password.text]) { 
    [self performSegueWithIdentifier:@"loginSuccessful" sender:self]; 
    } else { 
    // Warn user about invalid username/password 
    } 
} 
같은

이것은 사용자가 012와 일치하는 이름으로 스토리 보드에 단절을 생성 한 것에 의존합니다인수

관련 문제