2015-10-06 269 views
0

在我的MasterViewControlleruitabelview沒有選擇方法更改DetailedViewController視圖。在拆分視圖控制器:調用詳細視圖控制器方法從主視圖控制器

我的問題是當我在DetailedViewController中更改視圖時,如果用戶未手動保存,則需要保存文本字段值。

我該如何檢查MasterViewController或任何想法來檢測主視圖做選擇方法從DetailedViewController調用。

在此先感謝。

+0

我想你應該實現[方案](https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols的.html)。 – Mahesh

+0

你可以給一些代碼。 – chimbu

+0

你想從'MasterViewController'的'didSelectRowAtIndexPath'調用一個'DetailedViewController'方法,對吧? – Mahesh

回答

1

MasterViewController.h

@protocol CellSelectionDelegate <NSObject> 

    -(void)rowSelected:(NSIndexPath *)indexPath; 
@end 


@interface MasterViewController : UIViewController <UITableViewDataSource,UITableViewDelegate> 
{ 
} 
@property(nonatomic,strong)IBOutlet UITableView *menuTable; 
@property (nonatomic, weak) id<CellSelectionDelegate> cellDelegate; 

@end 
MasterViewController.m

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if([self.cellDelegate respondsToSelector:@selector(rowSelected:)]) 
    { 
     //sending selected indexPath, you can use indexPath.row in your detail view 
     [self.cellDelegate rowSelected:indexPath]; 
    } 

} 

現在

DetailedViewController.h

#import "MasterViewController.h" 
@interface DetailedViewController : UIViewController<CellSelectionDelegate> 
{ 

} 
@property(nonatomic,strong)MasterViewController *masterView; 
@end 

DetailedViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    //Set master page as the delegate. 
    masterView.delegate = self; 

} 

現在宣佈以下的委託方法

-(void)rowSelected:(NSIndexPath *)indexPath 
{ 
    NSLog(@"Your selected Row : %d",indexPath.row); 
    //do your work according to selection made in master view. use indexpath.row to identify which option was selected, you can also pass the other data with rowselected: method 
} 
+0

無法找到CellSelectionDelegate.unable的協議聲明來實現協議。 – chimbu

+0

我知道這是舊的,但我只是遇到了這個問題,發現我有一個循環依賴在我的主要和詳細信息導入(即他們正在導入其他人的標題)。解決這個問題使代表能夠正常工作 – Chris

相關問題