2012-01-28 52 views
-1

我有一個基於視圖的應用程序。加載的第一個觀點有它加載使用該代碼的另一視圖按鈕:在Objective-C(iPhone)中卸載視圖

AddPost *addView = [[AddPost alloc] initWithNibName:@"AddPost" bundle:nil]; 
addView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentModalViewController:addView animated:YES]; 

我想要做的就是提供在視圖(AddPost),可以讓我將其關閉並返回到一個按鈕原始視圖。我怎樣才能做到這一點?

回答

1

這似乎有些奇怪,但實際上你可以有addView電話:

[self dismissModalViewControllerAnimated:YES]; 

從文檔:

「父視圖控制器負責貶提出使用模態視圖控制器presentModalViewController:animated:方法。但是,如果您在模態視圖控制器本身上調用此方法,那麼模態視圖控制器會自動將消息轉發給其父視圖控制器。

0

康拉德給出的答案將會很好地工作。以封裝稍好的名義,你可以在addView上放置一個委託協議,讓你的第一個視圖實現這個。

爲您addView控制器頭文件

所以:

@protocol addViewDelegate <NSObject> 
    - (void)addViewRequestDismissal; 
@end 

您還需要一個外部適當的addView控制器上:

@property (assign) id<addViewDelegate> delegate; 

然後,讓你的第一個視圖控制器實現這一點,所以在它的.h文件你應該有

@interface firstView : NSObject <addViewDelegate> { 
} 

當你instantia TE你addView記得要設置委託:

addView.delegate = self; 

在當你按下按鈕呼叫回addView控制器:

- (void)buttonPressed { 
    [self.delegate addViewRequestDismissal]; 
} 

最後,在你的第一個視圖記住實現此方法

- (void)addViewRequestDismissal { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

希望一切順利。如果您有任何其他問題,請回復:)