DirTy™의 하루일과/DirTy™의 가당찮은iOS

[IOS] pop segue에서 이전뷰로 갈때의 데이터 전달 방법

DirTy™ 2015. 1. 12. 16:07

pop된 view에서 이전 뷰로 돌아갈때 데이터 전달하는 방법은 보통 2가지 방법이 있다.

나는 1번을 자주 사용한다.


1. push된 뷰 컨트롤러에 델리게이트를 지정하여 델리게이트를 통해 전달

팝된뷰
- (void)ttesttableViewController:(testtableViewController *)controller id:(NSString *)pid pw:(NSString *)pass

{    

NSString *id = pid;

NSString *pw = pass;

}


이전뷰

@class testViewController;


@protocol testViewControllerDelegete <NSObject>

- (void)testViewController:

(testViewController *)controller

                 id:(NSString *)pid pw:(NSString)* pass;

@end


@interface testViewController : UITableViewController


@property (nonatomic, weak) id <testViewControllerDelegete> delegate;


2. unwind segue를 통해 뷰 컨트롤러가 닫힐 때 지정한 unwind메소드로 segue를 전달
- prepareForSegue처럼 segue를 받아서 pop되는 뷰컨트롤러에 접근 가능

- (IBAction)unwindFromModalViewController:(UIStoryboardSegue *)segue
{
    if ([segue.sourceViewController isKindOfClass:[ViewController class]]) {
        ViewController *ViewConroller = segue.sourceViewController;
        
        if (colorsViewConroller.selectedColor) {
            self.view.backgroundColor = ViewConroller.selectedColor;
        }
    }
}