我一直在我的頭上撞牆。我有一個使用Master-Detail SplitViewController作爲演示框架的iPad應用程序。當應用程序第一次加載時,我需要提供一個登錄對話框,並使其具有自定義大小。我在主故事板中創建了一個UIViewController場景,並在第一次加載DetailController時加載VC。用自定義尺寸呈現一個UIViewController
我現在面臨的問題是,我無法控制VC的大小。我已經將它定義爲FormSheet,以縱向模式顯示。我將演示文稿設置爲FormSheet。我試着用幾種不同的方式明確地設置尺寸,但絕對沒有什麼用。
根本問題是,由於所有這一切,VC 總是呈現在全屏作爲肖像。當我旋轉到風景時,以縱向模式保持,留下左右間隙並關閉視圖的頂部和底部。
這令人難以置信的令人沮喪,我真的不知道該從哪裏出發。有趣的是,在應用程序完全加載後,我用一個水龍頭呈現完全相同類型的VC。它呈現精美,使用以下作爲設置:
MyViewController *itemDetails;
itemDetails = [Globals.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];
itemDetails.itemImage.image = imageView.image;
itemDetails.jewelryObject = jewelryObject;
itemDetails.delegate = self;
itemDetails.modalPresentationStyle = UIModalPresentationPageSheet;
itemDetails.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:itemDetails];
itemDetails.navigationItem.title = jewelryObject.itemDescription;
[navigationController setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:navigationController animated:YES completion:nil];
navigationController.view.superview.autoresizingMask =
UIViewAutoresizingFlexibleTopMargin |
UIViewAutoresizingFlexibleBottomMargin;
navigationController.view.superview.frame = CGRectMake(
itemDetails.view.superview.frame.origin.x,
itemDetails.view.superview.frame.origin.y,
540.0f,
450.0f
);
navigationController.view.superview.center = self.view.center;
self.itemDetails = itemDetails;
我非常非常沮喪,我甚至不能表達它。就像我熱愛iOS的編程一樣,偶爾會有一些WTF時刻讓我希望自己是個隱士。如果有人有「哈哈!」他們可以向我傾訴的見解,我真的很感激。
你有沒有考慮過使用popover viewcontroller?它似乎可能適合這一點。 – rooster117
流行將是最後的手段。我基本上必須確保不允許外接水龍頭,這當然是可行的。 這對我來說太神奇了(正如馬特加洛韋指出的那樣),沒有官方的方式來做到這一點。但是我一起啃了一個類似的解決方案,在應用程序的另一部分工作,所以我不明白爲什麼它現在導致了這麼多問題。 我試着將VC加載到SplitViewController首次加載,但VC甚至不顯示。 難以置信的令人沮喪。謝謝,不過。如果我不能很快獲得解決方案,我會繼續提出你的想法。 –