Tag: uinavigationcontroller

在视图中查看控制器控制器和方向iOS

我有iPAD应用程序,它具有UIViewController A作为导航控制器的根视图控制器。 现在我有三个视图控制器B,C,D作为ViewController A的子视图。 我希望B不要回应定位,而C和D应该回应定位。 目前在代码中,所有这些代码都会响应方向更改。 还有另一个答案,说两个独立的根ViewControllers,并将其添加到Windows视图。 其中一个不旋转和其他旋转。 我不能这样做,因为我有ViewController A中的标题切换B,C,D,使他们前面的viewController。 无论如何,请build议。 谢谢

在UIViewController崩溃UISearchBar

使用UISearchBar时出现奇怪的崩溃。 我有一个视图控制器的故事板和一切工作正常,但只要在视图控制器中拖动一个UISearchBar,然后运行应用程序,我得到以下崩溃: * thread #1: tid = 0x6d83b, 0x0462169e libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x0462169e libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x045ef2c5 libsystem_pthread.dylib`pthread_kill + 101 frame #2: 0x043609c9 libsystem_sim_c.dylib`abort + 127 frame #4: 0x03a1c35d CoreFoundation`__handleUncaughtException + 749 frame #5: 0x0370bb8b libobjc.A.dylib`_objc_terminate() + 100 frame #6: 0x03ee5f60 libc++abi.dylib`std::__terminate(void (*)()) […]

UINavigationViewController中的SceneKit场景太长而无法释放

我的应用程序使用标准的UINavigationViewController。 在某些时候,用户已经导航到显示一个SceneKit场景的ViewController。 这个场景在内存中非常沉重,因为它有大约6000个几何graphics,每个几何graphics都有自己的材质(这需要这样做)。 当用户单击顶部栏的后退button以返回到先前的viewController时,应用程序将正确popup当前的视图控制器并显示下面的视图控制器。 但是,大约4秒钟,新的ViewController的UI显示冻结。 我已经使用了仪器时间分析器,而且我可以看到这些SceneKit方法占用了这4秒钟的很大一部分时间: – [NSConcreteMapTable countByEnumeratingWithState:objects:count:] – [SCNMetalResourceManager_geometryWillDie:] – [SCNMetalResourceManager _materialWillDie:] 这是有道理的,因为有这么多的几何形状和材料。 我怎样才能解决这种情况,以便从SceneKit透视图(快速取消分配)或从UINavigationViewController透视图(可能会强制释放场景以在单独的线程中发生)释放沉重的场景时,UI不会被阻塞? )。

切换视图时标签栏丢失

我有两个embedded在navigationController内的视图。 其中一个视图也embedded在tabController 。 当我在两个视图之间来回切换时,我失去了最初在其中一个视图上的tabBar 。 解决这个问题的最好方法是什么? 目前我正在使用一个segue ,并且处于亏损状态。

在iOS 11中导航标题视图问题

我正在面对iOS 11中导航栏项目的问题,如下面的截图所示,而两个栏button也不会执行任何button操作。 它在iOS 10.xx及以下的版本和相同的自动布局和大小完美的工作。 以下截图显示了自定义导航栏IB如何实现。 。 我也尝试了以下代码。 if (@available(iOS 11.0, *)) { [[self navigationController] navigationBar].prefersLargeTitles = NO; [[self navigationController] navigationItem].largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever; } ..但没有帮助。 请告诉我这里有什么问题,以及如何解决(任何自动布局问题?)。

UINavigationController,pushViewController错误

我有2个视图控制器 VC1有button 在这个button动作 – (IBAction)clickSearch:(id)sender { NSArray *vc=[self.navigationController viewControllers]; ViewControllerSearch *vcSearch=nil; for (int i=0; i<[vc count]; i++) { UIViewController *tempVC=[vc objectAtIndex:i]; if([tempVC isKindOfClass:[ViewControllerSearch class]]) { vcSearch=[vc objectAtIndex:i]; break; } } if(vcSearch) { [self.navigationController popToViewController:vcSearch animated:YES]; } else { ViewControllerSearch *vc3New= [[ViewControllerSearch alloc]initWithNibName:@"ViewControllerSearch" bundle:[NSBundle mainBundle]]; [self.navigationController pushViewController:vc3New animated:YES]; vc3New = nil; } } ViewControllerSearch id我的第二个视图控制器。这两个视图与push segue连接。 […]

点击导航控制器中的SearchResultTableView行后,无法显示目标场景

我想通过UISearchBar筛选条目列表,并在用户单击结果行后显示详细信息。 完整列表视图和详细信息视图通过导航控制器链接。 正常使用情况(没有search)就像魅力一样: (ListOfAllEntries) => (direct click on row) ==> (Details view for row) 这也是应该起作用的: (ListOfAllEntries) => (Search) – OK! ==> (ListOfFilteredEntries) – OK! ===> (click on result row) – OK! ====> (Details view for row) – BOOUUMMM! UI and Nav.Ctrl broken 我正在使用UISearchBar(与UISearchDisplayController)来过滤底层的UITableView。 正如苹果推荐的那样,过滤后的search结果显示在我的原始表格视图顶部的默认第二个表格视图(searchDisplayController.searchResultsTableView)中,并包含所有条目。 一切工作正常 – 条目被过滤,我得到正确的结果行索引path。 在用户点击search结果行之前,我想要将导航控制器顶部的选定行的详细信息视图推送出去。 我的目标详细信息视图显示但是我的程序被破坏在以下方面: 目标视图显示滑动到导航栏下方(请参阅图像#2) 如果我按导航栏上的“返回”,我得到一个空的屏幕(见图#3),并进一步返回后单击我的应用程序崩溃) uncaught exception 'NSInvalidArgumentException', reason: […]

在UINavigationController中释放ViewControllers的内存

我正在使用UINavigationController构build应用程序。 我有一个ViewController显示一些内容,当它从用户接收交互(例如点击一个button)时,显示一个新的ViewController 。 这里是代码: FirstViewController.m -(IBAction)goToSecondVC:(id)sender{ SecondViewController *secondVC = [[SecondViewController alloc] init]; [self.navigationController pushViewController: secondVC]; } 一旦SecondViewController出现,我想从内存中释放FirstViewController 。 然后,例如,如果我从SecondViewController跳转到FifthViewController我也希望SecondViewController被释放。 当我在控制器之间来回跳转时,应用程序消耗的内存会增加,这意味着它们不会被释放。 有什么想法吗? 当我在控制器之间切换时,内存指示器会发生这种情况。 ARC被激活:

标签栏控制器不会显示在button上

我是新来的ios.Ilogin屏幕连接到ViewController.swift文件,它具有button呈现模式延伸到标签栏控制器。 var window: UIWindow? @IBAction func loginBtnWasPressed(_ sender: Any) { window=UIWindow(frame: UIScreen.main.bounds) window?.makeKeyAndVisible() let layout=UICollectionViewFlowLayout(); window?.rootViewController=UINavigationController(rootViewController: resturent(collectionViewLayout:layout)) } 标签栏控制器的第一个标签是连接resturent.swift类的,这是集合View Controller。程序崩溃时显示标签栏控制器的第一个标签的内容,但程序没有在底部显示标签栏。如何避免程序崩溃? 如何显示底部的标签栏? 您可以从此链接下载该项目https://drive.google.com/file/d/0B5pNDpbvZ8SnRm9TY0l1YkFWYlU/view?usp=sharing

IOS工具栏不显示

我是新来的ios编程。 我遇到的问题是我已经在我的xib文件中设置了一个工具栏,但运行应用程序后,工具栏不显示。 我已经在viewDidLoad函数和delegate.m类中添加了这两行,但仍然没有显示工具栏 self.navigationController.toolbarHidden = NO; 这是我的代码 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [userDefaults objectForKey:@"AppleLanguages"]; EPubViewController *epubView = [[EPubViewController alloc] init]; [epubView loadEpub:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"AtoZbook" ofType:@"epub"]]]; self.navigationController = [[UINavigationController alloc]initWithRootViewController:epubView]; self.navigationController.toolbarHidden = NO; self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; } EPubViewController.m – (void)viewDidLoad { [super […]