亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SubViewController向數組增加一項數據,顯示在 RootViewController里面的tableView

SubViewController向數組增加一項數據,顯示在 RootViewController里面的tableView

函數式編程 2019-04-16 17:05:36
有兩個UIViewController:RootViewController,SubViewController.RootViewController有一個tableView,tableView里面的數據來自數組array,怎么通過SubViewController向數組array增加一項數據,然后顯示在RootViewController里面的tableView上?類似手機里面的聯系人。。
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

其實這個涉及到的東西是oc的基礎知識:代理,通知,block等。
上面的幾種方式都可以實現你想要的效果。
具體實現:
(這里只說明代理模式的實現方式,其他方式雷同,但是不一樣原理,題主自行Google)
場景:SubViewController一個按鈕btn(綁定函數changeRoot),點擊后加入到RootViewController的array一個數值,并刷新數組
代理模式
聲明代理
SubViewController.h
@protocolSubViewControllerDelegate
-(void)changeArray:(NSString*)str;//聲明代理方法
@end
@interfaceSubViewController:UIViewController
{
iddelegate;
}
@property(nonatomic,unsafe_unretained)iddelegate;
在SubViewController.m的btn綁定事件中實現代理方法
-(void)changeRoot{
[_delegatechangeArray:@"change"];
}
接收代理
在RootViewController里面接收代理(注意這里需要對SubViewController實例進行delegate=self操作)
-(void)changeArray:(NSString*)str
{
[self.arrayaddObject:str];
[self.tableviewreload];
}
                            
查看完整回答
反對 回復 2019-04-16
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

Array屬于復雜類型,采用引用傳遞。
核心思想很簡單:通過segue(或不采用segue)將前一個UIViewController內存里維護的Array直接傳遞給下一個UIViewController的一個成員變量,本質上那個變量只是一個指針,指向同一片內存區域。
在下一頁直接給數組增加一項即可,回到父UIViewController刷新頁面就能顯示結果了。
                            
查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 345 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號