2015-10-12 46 views
0

在我的應用程序中有一個浮動按鈕。它的功能是從任何地方打開可用的屏幕。如何關閉並推送新的ViewController

方案

假設我有4個屏幕,每個屏幕的是浮動按鈕。

1. Home Screen 
2. Services Screen 
3. Contact Screen 
4. Events 

現在假設我已打開所有屏幕。目前我在聯繫人屏幕上,我想去服務。

然後我必須再次推送服務,從而創建服務屏幕的對象。這就產生了一個問題,就好像用戶對服務攻擊10次一樣,然後將創建10個新對象。

我該如何實現這個場景?

我的代碼:

if([sender tag]==1) 
    { 
     [push home]; 
    } 

else if([sender tag]==2) 
    { 
     [push services]; 
    } 
else if([sender tag]==3) 
    { 
     [push Contact]; 
    } 
else 

{ 
    [push events]; 
} 
+0

你究竟從哪裏打開屏幕?這些屏幕在哪裏?這些由'UIViewController'實例表示嗎? – Petar

+0

是的,所有的都是UIViewController實例 – NSUser

+0

發佈當你點擊「浮動按鈕」時執行的代碼嗎? – Petar

回答

0

嘗試與此有關。

UIViewController *popViewController = //assign here Services Screen or what view you want to back 

BOOL isExist = NO; 
for (UIViewController *viewController in self.navigationController.viewControllers) { 
    if ([viewController isEqual:popViewController]) { 
     isExist = YES;//exist view controller. so you should not create a new one 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
} 

if (isExist==NO) {//not exist view controller. so you should create a new one 
    [self.navigationController pushViewController:YourViewController animated:YES]; 
} 
+0

兄弟我想彈出並推入新的屏幕根據用戶選擇。 – NSUser

+0

以及如果我在主屏幕,然後我打開服務 – NSUser

+0

是的,我明白了。敬請期待 – Jamil

0

我更喜歡用UITabBarController

+0

尊敬的用戶,不要提供任何解釋,不要回復downvoting答案。 UITabBarController專爲上述應用程序的可訪問性而設計。此外,使用UITabBarController將確保它包含的所有內容都將被實例化一次並按需提交,而不會有任何UI狀態損壞的風險。 –

0

@NSUser,抱歉沒有回答您確切的問題,但我會建議使用UIPageViewController作爲「託管」並一次呈現您的內容視圖控制器。下面是來自Apple的概念document,其中有基本描述和操作方法。祝你好運。

相關問題