我仍然在学习目标-c并且很难解释所呈现的VC来呈现VC。
为了达到这个目的,我认为你可以建立代表,将正确的消息发送回现有VC中的VC。
我的故事板看起来像这样:
我遇到的问题是如果我点击UIBUtton2,它就不会回到主VC。事实上,它什么也没做。
然而,点击VC1中的任何单元格转换为VC2并点击UIButton3转换回VC1。
MainVC.h:
#import "VC1.h"
@interface MainVC : UIViewController <VC1Delegate>
....
MainVC.m:
- (void)didGoBackToMainVC
{
[self dismissViewControllerAnimated:YES completion:nil];
}
....
VC1 .h:
#import "VC2.h"
@protocol VC1Delegate <NSObject>
@required
- (void)didGoBackToMainVC;
@end
@interface VC1 : UIViewController <UITableViewDataSource, UITableViewDelegate,
VC2Delegate>
@property (weak, nonatomic) id <VC1Delegate> delegate;
- (IBAction)UIButton2:(UIButton *)sender;
VC1.m:
- (void)didGoBackToVC1
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction)UIButton2:(UIButton *)sender
{
[self.delegate didGoBackToMainVC];
}
VC2.h:
@protocol VC2Delegate <NSObject>
@required
- (void)didGoBackToVC1;
@end
@interface VC2 : UIViewController
@property (weak, nonatomic) id <VC2Delegate> delegate;
- (IBAction)UIButton3:(UIButton *)sender;
VC2.m:
- (IBAction)UIButton3:(UIButton *)sender
{
[self.delegate didGoBackToSponsors];
}
我确定我没有正确理解这种关系。有人能告诉我我做错了吗?
由于
答案 0 :(得分:0)
根据我在上面的评论中的理解,我看到你的主VC显示VC1模式正确。 所以我猜你在VC1.m中有这个代码
- (IBAction)goToMainVC:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
接下来确保VC1中的Cell具有'触发的Seques'选择类型'Show'。你可能在你的VC1.m
中有这个代码- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"pushVC2"]) {
VC2 *vc2 = (VC2 *)segue.destinationViewController;
}
}
接下来在你的VC2.m中你也应该有这个
- (IBAction)dismissVC2:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
如果你拥有这些,它应该像魅力一样。在这种情况下,没有代表需要。希望这可以帮助。