簡而言之:我想擁有兩個(gè)全屏視圖,可以在視圖A和視圖B之間切換。我知道我可以只使用Tab Bar Controller,但我不想這樣做。我想看看這是如何手工完成的,以了解引擎蓋下的情況。我有一個(gè)UIViewController充當(dāng)根控制器:@interface MyRootController : UIViewController { IBOutlet UIView *contentView;}@property(nonatomic, retain) UIView *contentView;@endcontentView連接到一個(gè)UIView,我將它作為子視圖添加到Nib的“視圖”中。這是綠色,我全屏顯示。工作正常。然后,我?guī)缀跻韵嗤姆绞絼?chuàng)建了另外兩個(gè)視圖控制器。ViewControllerA和ViewControllerB。ViewControllerA具有藍(lán)色背景,ViewControllerB具有黑色背景。只是看看哪個(gè)活躍。因此,在myRootController的實(shí)現(xiàn)中,我這樣做:// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.- (void)viewDidLoad { [super viewDidLoad]; ViewControllerA *vcA = [[ViewControllerA alloc] initWithNib]; [self.contentView addSubview:vcA.view]; [cvA release];}順便說一句,-initWithNib方法看起來像這樣:- (id)initWithNib { // Load the view nib if (self = [super initWithNibName:@"ViewA" bundle:nil]) { // do ivar initialization here, if needed } return self;}這樣可行。啟動(dòng)應(yīng)用程序時(shí),我從ViewControllerA中看到了視圖。但是現(xiàn)在最大的問題是:視圖控制器通常具有所有這些方法,例如:(void)viewWillAppear:(BOOL)動(dòng)畫;(void)viewDidDisappear:(BOOL)動(dòng)畫;(void)viewDidLoad;...等等。誰或什么,或者如果我沒有選項(xiàng)卡欄控制器就以“我”的方式調(diào)用這些方法,該如何調(diào)用?我的意思是:如果我分配了ViewController的類,并且視圖可見,那么我是否必須注意調(diào)用這些方法?它怎么知道viewWillAppear,viewDidDisappear或viewDidLoad?我相信Tab Bar Controller在引擎蓋下具有所有這些“聰明”。還是我錯(cuò)了?更新:我已經(jīng)測試過了。如果釋放視圖控制器(例如:ViewControllerA),則在viewDidDisappear上不會(huì)收到任何日志消息。僅在分配和初始化ViewControllerA時(shí),我才獲得viewDidLoad。就是這樣。因此,所有跡象現(xiàn)在都代表UITabBarController的聰明;),我必須弄清楚如何復(fù)制它,對嗎?
3 回答

白板的微信
TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果我理解正確,那么您要完成的工作非常簡單。
只需在您的應(yīng)用程序委托上添加一個(gè)UINavigationController并執(zhí)行:
[navigationController pushView:vcA];
代表將被相應(yīng)地召集:
(void)viewWillAppear:(BOOL)動(dòng)畫;
(void)viewDidDisappear:(BOOL)動(dòng)畫;
(void)viewDidLoad;
當(dāng)您要彈出視圖并推入另一個(gè)視圖時(shí):
[navigationController popViewControllerAnimated:true];
[navigationController pushView:vcB];
如果您不希望顯示navigationController,請使用:
[navigationBar setHidden:YES];
其中navigationBar是與您的UINavigationController對應(yīng)的UINavigationBar。
- 3 回答
- 0 關(guān)注
- 515 瀏覽
添加回答
舉報(bào)
0/150
提交
取消