首先內存管理復習
alloc retain copy new遇到這幾個都要記得release 或者autorelease
定義屬性的時候
@property(nonatomic,retain)NSArray *arr;
因為 retain了 所以需要 在.m里面的 dealloc 里面 release=======================================================
進入正題
-1
導航欄 控制頁面
首先要在AppDelegate里面創建 初始化一個 UINavigationController
注意:要alloc一個 直接用屬性的話也要alloc init一個給它!!!
第一種
UINavigationController *nav= [[UINavigationControlleralloc] initWithRootViewController:self.viewController];
第二種
.h
@property (strong,nonatomic)UINavigationController *navCotrol;
.m
self.navCotrol = [[UINavigationControlleralloc] init];
[self.navCotrolpushViewController:self.viewControlleranimated:YES];
這樣子就可以切換頁面了 他會控制頁面切換 當我門在下一個頁面的時候 就不能再 重新alloc init一個新的UINavigationController 直接用AppDelegate里面的 這個來控制就ok在第二個頁面里面直接用
FirstViewController *vc = [[FirstViewControlleralloc] init];
//頁面傳值注意傳遞的是地址
vc.receArray = self.arr;
[self.navigationControllerpushViewController:vc animated:YES];
這里的navigationController 就是 之前AppDelegate的alloc init的那個注意:頁面直接的數值傳遞其實是傳遞地址的 (兩個里面定義屬性來傳遞與接受vc.receArray = self.arr;)
//頁面傳值注意傳遞的是地址
FirstViewController *vc = [[FirstViewController alloc] init];
//頁面傳值 注意傳遞的是地址
vc.receArray = self.arr; = self.arr;
[self.navigationController pushViewController:vc animated:YES];
所以 值改變的時候會導致在vc中改變了數組receArray的內容 都會改變 arr!(有時候我門不希望它相互影響 )===》可以在vc頁面里面 新創建一個數組 遍歷得到receArray的數值 然后釋放他 這樣就不會改變 之前了arr了 或者直接用 MutableCopy==>Copy回憶:可變數組的copy(深拷貝) 重新開辟一塊內存空間 不可變的數組等的copy (淺拷貝)改地址 不會重新開辟空間
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。