ある TabBarViewController から MasterViewController にデータを戻そうとしていますが、データを MasterViewController に戻そうとすると、プロトコル/デリゲートのメソッドにアクセスできません。
これは私がやったことです-私はTabBarViewcontrollerとMasterViewControllerを持っています.TabBarControllerはサブビューとしてMasterViewControllerに追加されます...私がやろうとしているのは、別のサブビューをMasterViewControllerにロードすることです。 tabBarViewController で選択されています。プロトコル/デリゲート メソッドを呼び出します。このために、次のコードを使用しています。(これまでのところ、これが理にかなっていることを願っています)
TabBarViewController.h
@class MasterViewController;
@protocol LoadActionView <NSObject>
@required
- (void) loadViewsAction;
@end
@interface TabBarViewController : UIViewController <UITabBarDelegate> {
__weak id <LoadActionView> delegate;
//..
}
@property (weak, nonatomic) id delegate;
//..
TabBarViewController.m
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
switch (item.tag) {
case 0:
{
NSLog(@"item 1 selected");
[[self delegate] loadViewsAction]; //the thread defiantly makes it here as I have debugged to this point
}
//..
次に、MasterViewController.h
#import <UIKit/UIKit.h>
#import "TabBarViewController.h"
@interface MasterViewController : UIViewController <UINavigationControllerDelegate, LoadActionView> {
TabBarViewController *tbVC;
}
@property (nonatomic, strong) TabBarViewController *tbVC;
//..
MasterViewController.m
#import "TabBarViewController.h"
@synthesize tbVC;
//..
- (void) viewDidLoad {
//..
tbVC = [[TabBarViewController alloc] initWithNibName:@"TabBarViewController" bundle:[NSBundle mainBundle]];
UIView *tbView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 367.0, 320.0, 49.0)];
[tbView addSubview:tbVC.view];
[otherNav.view addSubview:tbView];
}
- (void) loadViewsAction
{
NSLog(@"HITME!"); //threads not making it here.
}
ここで私が通常行うことと唯一異なるのは、このTabBarViewControllerがサブビューとして追加されているという事実だけです..だから、それが問題を台無しにしているなら、私は傷ついています..しかし、そうであれば、修正方法がわかりません...
どんな助けでも大歓迎です。