[英]Why delegate is not calling on navigationController
我知道如何使用委托模式
id<> delegate
屬性 [delegate respondtoselector:@selector(method)]
class <someProtocol>
繼承協議 -(void) protolcolMethod
class1Obj.delegate = self;
我在我的應用程序中使用了這幾個位置,但是現在我在同一應用程序中再次執行此操作,respontoselector無法正常工作。 唯一的區別是這次是在NavController中。
NavController父tableview類didselectrow,推入另一個視圖,該視圖上有一個按鈕,該按鈕上調用presentmadelcontroller,這是我聲明協議並在navigationContoller父類中繼承的位置。 但是為什么它不起作用 ? 我為此奮斗了幾個小時。
此類以模態表示,並聲明此協議
#import <CoreData/CoreData.h>
@protocol xPro <NSObject>
-(void)xGet;
@end
id<xPro> xDel;
@interface rosterForGroup : UIViewController <NSFetchedResultsControllerDelegate>
{
NSFetchedResultsController *fetchedResultsController;
NSArray *dispName;
}
@property (strong, nonatomic) IBOutlet UITableView *tableView;
@property (strong, nonatomic) id<xPro> xDel;
- (IBAction)xFunc:(id)sender;
@end
.m file ...
- (IBAction)xFunc:(id)sender
{
[xDel xGet];
}
此類是NavController父類
...
@interface groupChatViewController : UIViewController<XMPPRoomDelegate, createNewGroupDelegate, UITableViewDataSource, UITableViewDelegate, xPro>
...
@property (strong, nonatomic) rosterForGroup *xR4G;
...
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
xR4G = [[rosterForGroup alloc]init];
xR4G.xDel = self;
...
-(void)xGet
{
NSLog(@"AAAAAAH");
}
請避免使用這些奇怪的對象名稱。
rosterforgroup分配/初始化
- (IBAction)openGroupOptions:(id)sender
{
roster4Group = [[rosterForGroup alloc]init];
[roster4Group setDelegate:self];
[self presentModalViewController:roster4Group animated:true];
//[xmppRoom fetchMembersList];
}
也許這是一個長鏡頭; 但我懷疑rosterForGroup這實際上是“在屏幕上”是不一樣的情況下,你是alloc/init
在您的viewDidLoad方法荷蘭國際集團。 也許您是通過segues或其他方法到達那里的; 但是您顯示的代碼並沒有(盡管可能在省略的代碼中)表明您實際上是在將xR4G視圖控制器設置為包含的 View Controller並顯示在屏幕上(在連接了其操作方法后,等等)。
這意味着該解決方案是對View Controller關系的略微重組,如果您不清楚如何完成此操作,則可能會引起一個額外的SO問題(就目前而言,此問題不是建議的正確位置)如何獲得想要的東西)。
我還懷疑您的rosterForGroup
視圖控制器未正確初始化。 僅在VC上執行alloc / init並不能正確設置其視圖及其IB *連接(除非使用loadView
方法以編程方式完成所有操作)。 它們應該從故事板或XIB文件( initWithNibName:
或[self.storyboard instantiateViewControllerWithIdentifier:]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.