第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

視圖控制器:如何以編程方式在視圖之間切換?

視圖控制器:如何以編程方式在視圖之間切換?

RISEBY 2019-12-10 09:55:21
簡而言之:我想擁有兩個(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。


查看完整回答
反對 回復(fù) 2019-12-10
  • 3 回答
  • 0 關(guān)注
  • 515 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號