編集:
私は2つのタブを持つtabbarcontrollerを持っています。最初のタブにはviewControllerがあり、2番目のタブにはtableViewを持つViewControllerの2つのスタックを持つnavigationViewControllerがあります。
Tab1--->VC1
Tab2--->NVC-->fistVC1----push to----->secondVC2.
プッシュする私のコード:
こぶしVC1.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0 & (indexPath.row == 0)) {
_secondVC2 = [[secondVC2 alloc] init];
[self.navigationController pushViewController:_secondVC2 animated:YES];
[_secondVC2 release];
私がする必要があるのは、secondVC2 セルが選択されたときに、VC1 を secondVC2 のデリゲートとして設定することです。メッセージを VC1 に送信したいです。
どうすればいいですか、アドバイスをお願いします。
私は一撃のように試しました:
secondVC2.h
@protocol secondVC2Delegate <NSObject>
- (void)someMethod;
@end
#import <UIKit/UIKit.h>
@interface secondVC2 :UIViewController<UITableViewDelegate,UITableViewDataSource>
{
id<secondVC2Delegate>delegate;
}
@property (nonatomic ,assign) id<secondVC2Delegate>delegate;
@end;
secondVC2.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"delegate%@",self.delegate);
if (indexPath.row == 0) {
[self.delegate someMethod];
}
VC1.h
#import <UIKit/UIKit.h>
#import"secondVC2"
@interface VC1 :UIViewController<secondVC2Delegate>{
secondVC2 *tvc2;
}
@property (nonatomic ,retain) secondVC2 *tvc2;
- (void)someMethod;
@end;
VC1.m
- (void)viewDidLoad
{
tvc2 = [secondVC2 alloc] init];
tvc2.delegate = self;
}
しかし、デリゲートは解放されたままで、理由がわからない2番目のVC2でデリゲートがありませんでした。どうすればこれを達成できますか?