簡體   English   中英

重用視圖的iPhone應用顯示黑屏

[英]iPhone app reusing a view displays black screen

因此,我正在嘗試完成幾年前啟動的iPhone應用程序。 無論如何,我都有一個選項菜單,您可以從中創建一個自定義級別(轉到另一個視圖)。 然后,當我返回主菜單,然后返回選項菜單時,它僅顯示黑屏。

// shows options menu, works the first time
-(void) options : (id) sender{
    [self.menuViewController.view removeFromSuperview];
    [self.bg.view removeFromSuperview];
    [self transition:self.view :navController.view];
}

// goes to custom built level
- (void) createCustom : (int) colorCount : (int) width : (int) height : (int) shuffles : (int) partners : (ToggleMode) toggleMode : (BOOL) colorblind{
    self.gameViewController.isCustom = true;
    self.gameViewController.width = width;
    self.gameViewController.height = height;
    self.gameViewController.shuffles = shuffles;
    self.gameViewController.partners = partners;
    self.gameViewController.toggleMode = toggleMode;
    self.gameViewController.colorCount = colorCount;

    srandom(arc4random());

    [self.navController setNavigationBarHidden:true];
    [self.gameViewController goToLevel];

    [self transition:self.optionsMenu.customLevel.view : gameViewController.view];
}

- (void) transition : (UIView *) fromView : (UIView *) toView{
    [UIView transitionFromView:fromView toView:toView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromRight completion:NULL];
}

當我打印出涉及的對象時,它們似乎都還在那里,所以我不知道為什么它只是顯示黑色。 請幫我完成這個程序!

為什么不使用ModalViewController顯示選項菜單? 它將顯示在現有ViewController的上方,並且不會關閉/取消分配它。 這也將消除在過渡之前手動刪除視圖和視圖控制器的需要,這可能是導致黑屏問題的原因。 您可以在此模式上添加一個按鈕,以在用戶瀏覽完選項后將其關閉。

同樣,關於目標c的一般要點是,為了使您的生活更輕松,您應遵循正確的命名方法格式。 這涉及將參數名稱放在每個參數之前,以減少調用方法的混亂。 舉個例子:

- (void)createCustom:(int)colorCount
                    :(int)width
                    :(int)height
                    :(int)shuffles
                    :(int)partners
                    :(ToggleMode)toggleMode
                    :(BOOL)colorblind {
}

會變成類似:

- (void)createCustomColorCount:(int)colorCount
                              withWidth:(int)width
                              withHeight:(int)height
                              withNumberOfShuffles:(int)shuffles
                              WithNumberOfPartners:(int)partners
                              withToggleMode:(ToggleMode)toggleMode
                              setColorBlind:(BOOL)colorblind {
}

為了說明為什么這樣做有幫助,這是一個如何調用方法的示例:

[self createCustom:0
                  :100
                  :100
                  :5
                  :5
                  :nil
                  :NO];

與:

[self createCustomColorCount:0
                   withWidth:100
                  withHeight:100
        withNumberOfShuffles:5
        WithNumberOfPartners:5
              withToggleMode:nil
               setColorBlind:NO];

從第二種方法可以看出,每個參數值對應什么都更加清楚,而不必返回該方法的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM