2012-03-28 5 views
3

저는 Objective C를 처음 접했고 한 뷰 컨트롤러에서 다른 뷰 컨트롤러로 버튼을 사용하여 Segue를 수행하려고했습니다. 첫 번째보기 컨트롤러가 탐색보기 컨트롤러에 포함 된 세그먼트에 밀어 넣기 유형을 사용하고 싶습니다. 다음은 첫 번째보기 컨트롤러의 .m 및 .h 파일입니다.하나의보기 컨트롤러에서 다른보기 컨트롤러로 버튼을 밀어 넣는 방법

firstViewController.m

@implementation 

**(am I supposed to have an IBAction here for the pressed button?)** 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    if ([segue.identifier isEqualToString:@"firstSegue"]) { 

    **(I don't know what to put here)**  

    } 
} 
@end 

firstViewController.h 두 번째보기에있는 버튼에서 SEGUE (Ctrl + 드래그에있는 버튼 자체를 유선 경우

@interface firstViewController : UIViewController 



@end 

답변

5

인터페이스 빌더의 컨트롤러)를 사용하면 IBAction이 필요하지 않습니다. 보기 컨트롤러가 네비게이션 컨트롤러와 적절하게 연결되어 있다면이 방법으로 세그를 연결하면 첫 번째보기 컨트롤러에서 두 번째보기 컨트롤러로 푸시 애니메이션을 수행하는 데 충분합니다. 코드를 작성할 필요가 없습니다. 모든.

prepareForSegue 메서드의 목적은 데이터를 대상보기 컨트롤러에 전달하고, 대리인을 설정하는 것입니다. 두 번째보기 컨트롤러에 전달할 데이터가 없거나 해당 컨트롤러에서 구성 할 데이터가없는 경우, prepareForSegue을 구현해야합니다. 스토리 보드 단원과 같은 용어를 온라인으로 검색하여 prepareForSegue 및 다른 스토리 보드 기능을 사용하여보기 컨트롤러 간의 전환을 관리하기위한 몇 가지 모범 사례를 설명하는 몇 가지 사례를 찾을 수 있습니다 (like this).

+0

나는 당신이 제안한 것을 시도했다. 그래서 firstViewController라는 하나의 뷰 컨트롤러를 만들었습니다. 새로운 뷰 컨트롤러 (두 번째 뷰 컨트롤러)를 스토리 보드로 드래그 한 후 UIViewController 유형의 secondViewController라는 객관적인 C 클래스라는 새 파일을 만들었습니다. 그런 다음이 뷰 컨트롤러의 클래스 이름을 secondViewController로 식별했습니다. 이러한 뷰 컨트롤러를 설정 한 후에는 firstViewController에서 secondViewController로 단추를 연결했습니다. 마지막으로, 나는 firstViewController를 클릭하고 Navigation View Controller를 임베딩했다. 는 컴파일러 내가이 한 줄이 main.m 파일에서 어떤 강조 가지고 – Hans

+0

, 아직 성공적으로 실행 "를 반환 UIApplicationMain (는 argc, argv를, 전무, NSStringFromClass ([DiscountWalletAppDelegate 클래스]));"와 함께 하이라이트는 "Thread 1 : signal SIGABRT"라고하는 마커입니다. 이게 무슨 뜻이야? – Hans

+0

시뮬레이터의 버튼을 클릭하면 표시됩니다. – Hans

관련 문제