簡體   English   中英

如何在呈現的View Controller和呈現的View Controller之間建立關系?

[英]How to setup a relationship between the presenting View Controller and the presented View Controller?

我仍在學習Objective-C,並且很難從展示VC中解散展示的VC。

我讀到要實現此目的,您需要建立代表以將正確的消息從所呈現的VC發送回所呈現的VC。

我的情節提要看起來像這樣: 在此處輸入圖片說明

我遇到的問題是,如果單擊UIBUtton2,它不會返回到Main 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];
}

我確定我不太了解這種關系。 有人可以告訴我我在做什么錯嗎?

謝謝

從上面的評論中我了解到,我看到您的主VC正確顯示了VC1 Modally。 所以我想您的VC1.m中有此代碼

- (IBAction)goToMainVC:(id)sender
{
  [self dismissViewControllerAnimated:YES completion:nil];
}

接下來,確保您的VC1中的單元格具有“觸發的序列”選擇類型為“顯示”。 而且您可能在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];
}

如果您擁有所有這些,它應該像魅力一樣工作。 在這種情況下,不需要代表。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM