为什么更改下面的代码从旧到新条目修复了以下问题。 码: // OLD Entry – Did not work //[self.window addSubview:navigationController.view]; // NEW Entry – Fixed it self.window.rootViewController = self.navigationController; 使用旧代码时出现问题: 我使用一个UINavigationController,并有一个“mainView”UITableViewController,然后我推到堆栈上的第二级视图,我们称之为“detailedView”UITableViewController。 正常导航从主要到细节工作正常 但是,当启动时自动启动到第二个视图(当我保存状态),我到第二个视图确定,但在这种情况下工具栏button不会出现在第二个视图的底部。 当我回到主页面(通过UINavigationController标准安排),然后selectUITableView中的行,再次返回到相同的视图工具栏项目显示正常。 无法跟踪这个,但最后通过试验和错误,我注意到在appDelegate(所有地方)代码(见上文)的这种变化似乎解决了这个问题。 有任何想法吗? 编辑:为了完整,这里是完整的方法 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { RootViewController *rootViewController = (RootViewController *)[navigationController topViewController]; NSManagedObjectContext *context = [self managedObjectContext]; if (!context) { abort(); // TODO: Do better job here […]
我有一个iOS应用程序,其中有一个导航控制器作为根控制器,但在一个部分有一个标签栏来select导航栏之一的视图之间。 它看起来类似于iTunes应用程序(顶部的导航栏,底部的标签栏)。 我希望我的导航栏的标题根据select哪个标签进行更改。 我有两个单独的控制器文件为每个选项卡。 这是我曾尝试使用的每一个到目前为止解决这个无济于事: self.navigationItem.title = @"Title"; self.navigationController.navigationItem.title = @"title"; [self.navigationController setTitle:@"Live"]; [self setTitle:@"Top Title"]; 如何根据按下哪个选项卡来更改NavBar标题?
在导航栏中使用UIBarButtonSystemItemComposebutton呈现新视图时,该位置略微closures,并在视图进入视图后进行调整。 我认为这是iOS中的一个错误(使用8.3版本)。 它只发生在使用UIBarButtonSystemItemCompose时。 它不会发生与其他types的button(系统,文本或自定义)。 复制这个错误所需的唯一代码就是使用这个ViewController代码和可以看到的视图: #import "ViewController.h" @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIBarButtonItem* composeBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil]; [self.navigationItem setRightBarButtonItem:composeBarButtonItem animated:YES]; } @end 我在GitHub上创build了一个仓库,用最less的代码来重现这个问题: https : //github.com/jvdvleuten/iOSComposeBarButtonItemBug 看起来与此相关: 当UINavigationController被模态地呈现时,UIBarButtonItems移位 ,除了我的错误仅在使用UIBarButtonSystemItemCompose时出现。 有任何想法吗?
我有代码,使用外观属性更改导航栏的颜色。 我希望对导航栏颜色的更改立即可见。 但是,我无法find正确的调用来重新绘制导航栏。 目前,当我推动一个模式导航控制器,因此覆盖了导航栏颜色的变化。 这不起作用: AppDelegate* appDelegate = ((AppDelegate*)[[UIApplication sharedApplication] delegate]); [appDelegate.window setNeedsDisplay]; 我也试过要求导航控制器的各种实例来重新绘制他们的意见,这是行不通的。 请求UINavigationBar根据需要重新绘制自己的正确方法是什么? 谢谢! 更新:这是可用的代码! – (UIColor *) colorOfPoint:(CGPoint)point { unsigned char pixel[4] = {0}; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast); CGContextTranslateCTM(context, -point.x, -point.y); [self.view.layer renderInContext:context]; CGContextRelease(context); CGColorSpaceRelease(colorSpace); NSLog(@"pixel: %d %d %d %d", pixel[0], pixel[1], […]
我目前正在一个项目,我们有一个标签栏控制器4个选项卡,每个选项卡有一个导航控制器。 在每个导航控制器上都有多个视图控制器。 我在这里和其他地方读了很多post,目前我们做了以下工作: 子类UITabbarcontroller – (BOOL)shouldAutorotate { return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotate]; } – (NSUInteger) supportedInterfaceOrientations { return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController]supportedInterfaceOrientations]; } – (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ return [[[self.viewControllers objectAtIndex:self.selectedIndex]topViewController] shouldAutorotateToInterfaceOrientation:toInterfaceOrientation]; } 这工作很好,如果我们在每个viewcontrollers中指定以下内容: – (NSUInteger) supportedInterfaceOrientations{ return UIInterfaceOrientationMaskPortrait; } – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ return YES; } 如预期的那样,这会将其locking到肖像。 但现在真正的问题发生! 如果我们在我们的视图控制器中的其中一个选项卡指定它应该旋转到风景它工作正常,但是当我们然后改变选项卡它仍然在风景,这不是我们想要的! 所以总结一下,有没有人得到一个解决scheme,如何locking几乎所有的视图到一个给定的方向期待一个,并可以改变标签,他们在你指定的方向(这里的肖像)? 我也读了这个postiOS 6的UITabBarController支持与当前的UINavigation控制器的方向 ,但作为一个评论也提到“这几乎为我工作的问题是,如果我已经在横向,当我切换到一个肖像标签只有查看它仍然在旋转的肖像修复它,它不会旋转回风景,但我仍然需要它在肖像,当它第一次加载“这几乎是相同的在这里..
在我的iOS应用程序中,我想提供一个设置视图。 “presentModalViewController”工作得很好: ViewSettings *controller = [[ViewSettings alloc] initWithNibName:@"ViewSettings" bundle:nil]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller]; [self.navigationController presentModalViewController:navController animated:YES]; [controller release]; [navController release]; 不幸的是,我必须更改我的运行代码,并在Interface Builder中创build包括UINavigationController的ViewSettings。 为什么? 长话短说,我会在这个话题的最后解释 我尝试在ViewSettings中拖放一个UINavigationController,并创build一个IBOutlet来在我的类中进行访问。 我给这个控制器“presentModalViewController”,但应用程序崩溃… 我做错了什么? [编辑] 错误信息: GDB:编程接收信号:“SIGABRT”。 错误发生在这段代码的最后一行: ViewSettings *viewSettings = [[ViewSettings alloc] initWithNibName:@"ViewSettings" bundle:nil]; UINavigationController *navController = viewSettings.navigationController; UINavigationBar *navBar = navController.navigationBar; OwnNavigationBar *ownNavBar = (OwnNavigationBar *)navBar; [ownNavBar drawHeaderImage:YES]; […]
我正在尝试将pkrevealcontroller滑动菜单集成到现有的具有segues的故事板的iOS项目中。我扩展了UINavigationViewController,并将新类链接到故事板上的Nav Controller。 在我的应用程序委托中,我执行以下操作: MainNavViewController *frontViewController = [[MainNavViewController alloc] initWithRootViewController:[[myRootViewController alloc] init]]; UIViewController *rightViewController = [[menuViewController alloc] init]; self.revealController = [PKRevealController revealControllerWithFrontViewController:frontViewController rightViewController:rightViewController options:nil]; self.window.rootViewController = self.revealController; 当我运行应用程序时,它成功地将滑动菜单图标添加到导航栏,前视图按照我的需要滑动。 但是它并没有使用我在故事板上添加的标题或细节。 我正在尝试甚至可能。
我正在重复如何Facebook Messenger应用程序显示UISearchBar。 当您点击导航栏中的左边栏button时,UISearchBar会从屏幕顶部向下出现/生成animation,当您取消时,它会从其起源处向上消失。 我曾经有我的UISearchBar作为我的表视图的头(故事板)中的默认设置,但现在我想要做我上面说的,但我不知道从哪里开始。 我的search显示器控制器仍然在我的故事板,但我从故事板的tableView控制器中删除了searchBar。 我感谢提供的任何帮助!
我有一个UIViewController (红色)设置为UITabBarController的第一个选项卡,如下面的故事板中所示。 这个视图控制器是一个容器视图控制器,并在其contentView (红色视图控制器内的白色矩形)内加载一个UINavigationController 。 这是我加载红色视图控制器的contentView的导航控制器的代码: – (void)viewDidLoad { [super viewDidLoad]; // instantiate navigation controller UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UINavigationController *navigationVC = [storyboard instantiateViewControllerWithIdentifier:@"N"]; // place navigation controller inside content view [self addChildViewController:navigationVC]; navigationVC.view.frame = self.containerView.bounds; [self.containerView addSubview:navigationVC.view]; [navigationVC didMoveToParentViewController:self]; } 从我所知道的视图控制器遏制这应该工作,因为我明确地设置导航控制器的框架。 但是,当tableView有足够的单元格超过容器的高度时,向下滚动时, tableView的末尾总会有一个条形。 我已经将tableView的backgroundColor为橙色 ,将单元格的backgroundColor为白色 ,以便看出区别。 我如何摆脱在tableView结束的橙色差距? (注意:我没有使用autolayout,我需要一个适用于iOS7 和 iOS6的解决scheme。)
我已经find了很多方法来回弹使用对象C的导航控制器中的2个视图控制器,但是当我尝试并切换到快速它似乎并没有工作。 什么是最好的方法回弹查看控制器? 任何指导将不胜感激