0
我還在學習Objective-C和有困難的時候,從風險投資呈現解僱提出風險投資。如何在呈現視圖控制器和呈現的視圖控制器之間建立關係?
我看,要實現這一點,你建立委託給正確的信息從呈現的VC發送回呈現VC。
我的故事板看起來像這樣:
我已經是如果我點擊UIBUtton2,它不返回主VC的問題。事實上,它什麼都不做。
然而,點擊從VC1 SEGUE到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];
}
我敢肯定,我沒有正確理解這種關係。有人能告訴我我做錯了什麼嗎?
感謝
你不需要代表做到這一點。如果UIButton2有代碼,[self dismissViewControllerAnimated:YES completion:nil],它應該工作。當你自己調用該方法時,它會自動轉發到呈現視圖控制器。 – rdelmar 2014-11-23 01:10:12
我最初沒有做代表,爲我所用代碼的UIButton,但在從VC2轉變回VC1,我得到「試圖提出關於VC2誰的觀點是不是在窗口層次VC1」,所以我就開始使用委託 – Pangu 2014-11-23 01:14:05
不應該發生,如果你做得對。沒有看到你的代碼,我不明白你做錯了什麼。 – rdelmar 2014-11-23 01:15:18