所以我創建了我的NSMutablearray在詳細視圖控制器中,分配了數據等,但我只是想知道如何在主視圖控制器中訪問它?這是我第一次使用表格視圖等,所以我對此非常無知。從詳細視圖控制器訪問數組到主視圖控制器Objective-C
感謝
所以我創建了我的NSMutablearray在詳細視圖控制器中,分配了數據等,但我只是想知道如何在主視圖控制器中訪問它?這是我第一次使用表格視圖等,所以我對此非常無知。從詳細視圖控制器訪問數組到主視圖控制器Objective-C
感謝
有一些方法可以做到這一點。
其中之一是: 您將NSMutableArray
設置爲視圖控制器上的屬性。然後,在您的詳細視圖控制器上爲視圖控制器本身設置一個屬性。
視圖控制器接口
@property (nonatomic, strong) NSMutableArray *mutableArray;
DetailViewController接口
@property (nonatomic, strong) ViewController *viewController;
然後,在視圖控制器,推DetailViewController之前,其viewController
屬性設置爲self
detailViewController.viewController = self;
然後,在DetailViewController上,將viewController.mutableArray
屬性設置爲剛剛創建的新數組。
你可以在viewWillDisappear
方法上做到這一點。
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
self.viewController.mutableArray = _myNewlyCreatedMutableArray;
}
所以,當你回來到ViewController,只是獲得self.mutableArray
,你會得到你的詳細視圖創建數組。
你需要使用指定的初始值設定的NSMutableArray傳遞給視圖控制器。
在ViewController .m和delcare中創建指定的initiliazer .h。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil WithArr:(NSMutableArray*)arr
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
self.arrTaskList=arr;
}
return self;
}
像DetailViewController當創建的ViewController對象
ViewController* vc=[ViewController alloc]initWithNibName:@"ViewController" bundle:@"" Arrr:self.arr];
一般圖案相反,可以創建在主視圖控制器對象和指針從這個VC到傳遞給一個特定項細節VC。然而,這只是最常見的模式,如果你認爲它合適,你所做的事情可能是正確的。
通常,細節VC通過代表向主VC返回數據。這裏有數百個關於如何做的教程和問題,我會複製粘貼教程。但在短期,步驟是:
id<yourProtocol>
指向委託聽起來很複雜,它確實有一點點,但一旦你瞭解了這個概念,你會發現它在幾乎所有的項目中都很有用。
另一種可能性是使用通知讓Master VC知道Detail VC中的某些內容發生了變化。
如果您對錶格視圖非常無知,正如您所說,那麼請閱讀Apple的「iOS視圖編程指南」。這會給你一個好的開始。 – rdelmar
你一定要通過這個pdf https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/RoadMapiOS.pdf它肯定會幫助你啓動你的ios開發,它也有你的問題的答案 – iamyogish
謝謝我會檢查出來 – Javanoob33