मैंने सेब से पेजकंट्रोल नमूना कोड डाउनलोड किया है। यह UIPageControl
वाला एक प्रोजेक्ट है। मैंने इसे बदल दिया है ताकि में अलग-अलग विचार हों। प्रत्येक दृश्य के लिए मैं जोड़ना चाहता हूं, मैंने UINavigationController
को rootViewController
के साथ UIViewController
या UITableViewController
के उप-वर्ग के रूप में बनाया है। फिर मैंने UIScrollView
में जोड़ा, navigationController
का दृश्य।क्यों छोड़ने के बाद मूल फ्रेम को समान आकार नहीं रखा जाता है ViewControllerAnimated?
मान लें कि मैं अब पहले दृश्य पर हूं। मैं एक मोडल व्यू कंट्रोलर दिखाना चाहता हूं। जब मैं इसे खारिज कर देता हूं, तो मेरे उदाहरण में अभिभावक दृश्य नियंत्रक (HomeViewController
) पूर्ण आकार में है, आकार के बजाए, जो नीचे था पृष्ठ पृष्ठ नियंत्रण दिखाएगा। खारिज के बाद फ्रेम का आकार बदलकर मैं इसे ठीक से काम कर सकता हूं, लेकिन यह एक खराब उपयोगकर्ता अनुभव है, क्योंकि इसे मूल दृश्य नियंत्रक के बाद बुलाया जाता है। एक मोडल व्यू कंट्रोलर को खारिज करते समय आकार बदलने के लिए HomeViewController
फ्रेम से बचने के तरीके पर कोई विचार?
-(void)dismissMVC:(id)sender {
CGRect frame = self.view.frame;
[self dismissViewControllerAnimated:YES completion:^{
self.view.frame = frame;
}];
}
- (void)loadScrollViewWithPage:(int)page
{
if (page < 0)
return;
if (page >= kNumberOfPages)
return;
// replace the placeholder if necessary
switch (page) {
case Home:
{
HomeViewController *controller = [viewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null])
{
controller = [[HomeViewController alloc] initWithPageNumber:page];
[viewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}
// add the controller's view to the scroll view
if (controller.view.superview == nil)
{
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller];
navController.navigationBar.barStyle = UIBarStyleBlack;
[navController setNavigationBarHidden:YES];
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 20;
frame.size.height = frame.size.height - 20;
navController.view.frame = frame;
controller.view.frame = frame;
[controller setNavController:navController];
[scrollView addSubview:navController.view];
[navController release];
}
break;
}
}
}
क्या आपने कभी यह पता लगाया कि यह सच क्यों है? – aloo
@aloo यह लगभग एक साल हो गया है, इसलिए मुझे याद नहीं है कि मैंने इसे कैसे ठीक किया। क्या आपको एक ही समस्या है? – Adriana
हां इसका अनुभव कर रहा है लेकिन मैं इसे एक छोटी परीक्षा परियोजना – aloo