नई जानकारी को देखते हुए - कोई UINavigationController यह है कि - चीजें अलग हैं। यहाँ मेरी कोड से प्रासंगिक बिट ...
नेविगेशन बार बनाएँ और अपने दृश्य के लिए इसे जोड़ने कर रहे हैं:
// Create the navigation bar
self.navBar = [[UINavigationBar alloc] init];
[self.view addSubview:self.navBar];
इसे बाहर निर्धारित करना ..
- (CGRect)frameForOrientation:(UIInterfaceOrientation)theOrientation
{
UIScreen *screen = [UIScreen mainScreen];
CGRect fullScreenRect = screen.bounds; // always implicitly in Portrait orientation.
CGRect appFrame = screen.applicationFrame;
// Find status bar height by checking which dimension of the applicationFrame is narrower than screen bounds.
// Little bit ugly looking, but it'll still work even if they change the status bar height in future.
float statusBarHeight = MAX((fullScreenRect.size.width - appFrame.size.width), (fullScreenRect.size.height - appFrame.size.height));
// Initially assume portrait orientation.
float width = fullScreenRect.size.width;
float height = fullScreenRect.size.height;
// Correct for orientation.
if (UIInterfaceOrientationIsLandscape(theOrientation)) {
width = fullScreenRect.size.height;
height = fullScreenRect.size.width;
}
// Account for status bar, which always subtracts from the height (since it's always at the top of the screen).
height -= statusBarHeight;
return CGRectMake(0, statusBarHeight, width, height);
}
- (CGSize)viewSizeForOrientation:(UIInterfaceOrientation)theOrientation
{
CGRect frame = [self frameForOrientation:theOrientation];
return CGSizeMake(frame.size.width, frame.size.height);
}
- (void)layoutSubviewsForInterfaceOrientation:(UIInterfaceOrientation)theOrientation withAnimation:(BOOL)animate
{
CGSize fullSize = [self viewSizeForOrientation:theOrientation];
float width = fullSize.width;
float height = fullSize.height;
CGRect newFrame = CGRectMake(0, 0, width, height);
SubViewController *controller;
UIView *theView;
// Place the navigation bar
CGRect navBarFrame = newFrame;
navBarFrame.size.height = NAVBARHEIGHT;
self.navBar.frame = navBarFrame;
}
करने के लिए एक समारोह बनाएं जो यह/इसे छिपाने:
- (void)showNavigationBar:(BOOL)show
{
if (show == YES && self.navBar.hidden == YES) {
// Move the frame out of sight
CGRect frame = self.navBar.frame;
frame.origin.y = -frame.size.height;
self.navBar.frame = frame;
// Display it nicely
self.navBar.hidden = NO;
frame.origin.y = 0.0;
[self.view bringSubviewToFront:self.navBar];
[UIView animateWithDuration:0.3
animations:^(void) {
self.navBar.frame = frame;
}
];
}
else if (show == NO && self.navBar.hidden == NO) {
CGRect frame = self.navBar.frame;
// Display it nicely
frame.origin.y = -frame.size.height;
[self.view bringSubviewToFront:self.navBar];
[UIView animateWithDuration:0.3
animations:^(void) {
self.navBar.frame = frame;
}
completion:^(BOOL finished) {
self.navBar.hidden = YES;
}
];
}
}
जहां
#define NAVBARHEIGHT 44
'[self.navigationController setToolbarHidden: हाँ];' – Kjuly
UIView एक संपत्ति [छिपा] (है http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/ UIView.html # // apple_ref/occ/inst/instp/UIView/छुपा) – beryllium
मुझे यकीन नहीं है कि यह प्रश्न -1 क्यों मतदान किया गया था। मैंने इसे वापस वोट दिया क्योंकि मैं एक ही चीज़ की कोशिश कर रहा हूं जिसमें कोई नेविगेशन नियंत्रक नहीं है (हालांकि इस प्रश्न में उल्लेख किया जाना चाहिए।) –