2016-11-17 44 views
1

在我的viewController2我有不同的UIView的,讓我們說,當我加載viewController3我的viewController2我只需要顯示UIView2。有可能這樣做嗎?加載其他不同的viewController參數

viewController2,有很多形式。例如,單擊form1上的按鈕後,它將隱藏form1並顯示form2等等。現在,問題是如果我從viewController3加載我的viewController2是否可以顯示form2而不是form1?

下面是如何加載我viewController2:

[APP_DELEGATE setUIBlockingEnabled:[NSNumber numberWithBool:NO]]; 
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
appDelegate.rootViewController = nil; 
appDelegate.rootViewController = [[RootViewController alloc] init]; 
appDelegate.window.rootViewController = appDelegate.rootViewController; 
appDelegate.window.backgroundColor = [UIColor clearColor]; 
RegistrationViewController *controller = [[RegistrationViewController alloc]init]; 
[appDelegate.rootViewController moveToViewController:controller]; 

// viewController2

@property (nonatomic, strong) UIView *rectHolder1; 
@property (nonatomic, strong) UIView *rectHolder2; 

rectHolder1和rectHolder2有不同的子視圖,並在頁面加載我顯示rectHolder1和rectHolder2是不可見的。當用戶點擊rectHolder1的按鈕時,它會隱藏rectHolder1並顯示rectHolder2。現在我怎麼能直接顯示rectHolder2,如果我從另一個viewController加載viewController2

+2

不能準確理解你想要的!更加詳細一些 ! – Lion

+0

編輯它。謝謝! – Supermannoying

+0

嘗試張貼一些截圖以便更好地理解。 –

回答

0

你應該必須在viewController2viewWillAppear管理這種東西。設置一些標誌,當你來自VC3 to VC2,這樣你就可以區分你是從VC3來的!如果你的國旗是真的(我的意思是你是從VC3來的),那麼顯示你想要的視圖,否則顯示你想要顯示的其他內容!如果你前進意味着你從VC3推動VC2(根據命名視圖控制器的可能性較小),那麼你可以使用prepareforsegue來設置標誌!如果您從VC3跳到VC2,那麼您可以使用delegate and protocolNSUserDefaults進行存儲或設置標誌!

0

是的,可以的,你可以選擇隱藏視圖(firstView),或者如果你的其他視圖(比如說secondView)約束被隱藏相對於要隱藏的視圖(firstView)設置,則可以將視圖(firstView)的高度更改爲零。

這樣你就可以隱藏你想隱藏的視圖。您只需確定需要隱藏哪個視圖,然後更改約束或在轉到該視圖控制器時隱藏視圖。