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

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

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

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

RISEBY 2019-12-10 09:55:21
簡而言之:我想擁有兩個全屏視圖,可以在視圖A和視圖B之間切換。我知道我可以只使用Tab Bar Controller,但我不想這樣做。我想看看這是如何手工完成的,以了解引擎蓋下的情況。我有一個UIViewController充當根控制器:@interface MyRootController : UIViewController {    IBOutlet UIView *contentView;}@property(nonatomic, retain) UIView *contentView;@endcontentView連接到一個UIView,我將它作為子視圖添加到Nib的“視圖”中。這是綠色,我全屏顯示。工作正常。然后,我幾乎以相同的方式創建了另外兩個視圖控制器。ViewControllerA和ViewControllerB。ViewControllerA具有藍色背景,ViewControllerB具有黑色背景。只是看看哪個活躍。因此,在myRootController的實現中,我這樣做:// 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;}這樣可行。啟動應用程序時,我從ViewControllerA中看到了視圖。但是現在最大的問題是:視圖控制器通常具有所有這些方法,例如:(void)viewWillAppear:(BOOL)動畫;(void)viewDidDisappear:(BOOL)動畫;(void)viewDidLoad;...等等。誰或什么,或者如果我沒有選項卡欄控制器就以“我”的方式調用這些方法,該如何調用?我的意思是:如果我分配了ViewController的類,并且視圖可見,那么我是否必須注意調用這些方法?它怎么知道viewWillAppear,viewDidDisappear或viewDidLoad?我相信Tab Bar Controller在引擎蓋下具有所有這些“聰明”。還是我錯了?更新:我已經測試過了。如果釋放視圖控制器(例如:ViewControllerA),則在viewDidDisappear上不會收到任何日志消息。僅在分配和初始化ViewControllerA時,我才獲得viewDidLoad。就是這樣。因此,所有跡象現在都代表UITabBarController的聰明;),我必須弄清楚如何復制它,對嗎?
查看完整描述

3 回答

?
白板的微信

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

如果我理解正確,那么您要完成的工作非常簡單。


只需在您的應用程序委托上添加一個UINavigationController并執行:


[navigationController pushView:vcA];

代表將被相應地召集:


(void)viewWillAppear:(BOOL)動畫;

(void)viewDidDisappear:(BOOL)動畫;

(void)viewDidLoad;

當您要彈出視圖并推入另一個視圖時:


[navigationController popViewControllerAnimated:true];

[navigationController pushView:vcB];

如果您不希望顯示navigationController,請使用:


[navigationBar setHidden:YES];

其中navigationBar是與您的UINavigationController對應的UINavigationBar。


查看完整回答
反對 回復 2019-12-10
  • 3 回答
  • 0 關注
  • 516 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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