2012-01-28 66 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]; 
} 

希望一切顺利。如果您有任何其他问题,请回复:)