我一直在研究一个简单的测试应用程序来学习UIPageViewController的细节.我有它工作,但我不相信我的执行是最好的方式.我希望你们中的一些人能指出我正确的方向.
为了获得基本的理解,我以本教程为出发点. http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
本教程创建了一个应用程序,该应用程序viewController
对每个页面使用一个应用程序UIPageViewController
.但是我需要利用UIPageViewController来滚动具有完全不同布局的页面.因此,为了使教程更进一步,我创建了一个主 - 详细信息应用程序,它在详细视图中使用UIPageViewController来显示三个不同的视图控制器.我坚持只为这个测试应用程序显示图像和标签,但我目前正在构建的应用程序有三个viewControllers,它们将包含tableview,imageView和textViews,或者一些textFields.
这是我的测试应用程序的故事板.
我用它DetailViewController
作为数据源PageViewController
.在viewDidLoad
所述的DVC我建立将在三个内容视图控制器中使用的标签和图像firstViewController
,secondViewController
和thirdViewController
以这种方式.
if ([[self.detailItem description] isEqualToString:@"F14's"]) {
//Here the page titles and images arrays are created
_pageTitles = @[@"Grim Reapers", @"Breakin the Barrier!", @"Top Gun"];
_pageImages = @[@"F14_Grim.jpg", @"F14boom.jpg", @"F14_topgun.jpg"];
//Here I call a method to instantiate the viewControllers
FirstController *selectedController = [self viewControllerAtIndex:0];
SecondController *nextController = [self viewControllerAtIndex:1];
ThirdController *lastController = [self viewControllerAtIndex:2];
[_vc addObject:selectedController];
[_vc addObject:nextController]; …
Run Code Online (Sandbox Code Playgroud) 请原谅我,已经有很多关于如何以编程方式将UIBarButtonItem添加到NavigationBar的问题,但我似乎无法让任何解决方案在我的情况下工作.
这是我一直在学习UIPageViewController的简单测试应用程序的布局.
我有页面视图控制器与三个独特的viewControllers很好地工作.我现在想rightBarButtonItems
为每个视图控制器设置唯一.我可以轻松地设置一个共同barButtonItem
的DetailViewController
通过简单地这样做.
UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithTitle:@"Whatever"
style:UIBarButtonItemStylePlain
target:self
action:@selector(doSomething)];
self.navigationItem.rightBarButtonItem = newButton;
Run Code Online (Sandbox Code Playgroud)
鉴于我需要为这三个页面中的每个页面都有一个独特的按钮,pageViewController
我无法在中设置按钮detailViewController
.我viewDidAppear
在三个控制器上尝试了上面的代码, 但按钮不会出现.我也尝试以相同的方式创建按钮,然后设置它,没有运气.
DetailViewController *vc = [[DetailViewController alloc] init];
vc.navigationItem.rightBarButtonItem = newButton;
Run Code Online (Sandbox Code Playgroud)
我知道我离这里很近,我只是不确定如何指定我需要在NavigationController的NavigationBar中添加一个按钮,该按钮运行我的contentViewControllers所嵌入的detailViewController.任何帮助都会很棒特别是SNIPPETS.
作为旁注,我尝试了一些其他方法,这些方法都存在问题.
viewDidLoad
而不是viewDidAppear
viewDidLoad
每次从一个页面滑动到下一个页面时都不会调用该方法.viewDidAppear
然而,方法是我试图在那里设置按钮.有可能viewWillAppear
每次调用,但我没有检查.解
事实证明我很接近...而不是在UIPageViewController方法中创建按钮,我只需要navigationItem
在我的三个视图控制器中创建一个属性.当控制器在委托方法中实例化时,我只需将navigationItem属性设置为等于detailViewController的属性.在我的viewDidApper
方法中,我可以创建按钮.然后在viewWillDisappear
我将按钮设置为nil
.你也可以在创建按钮viewdidLoad
的DetailViewController
和更改文本和行动viewDidAppear
的各个viewControllers的.这是一个例子.
在委托方法中
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController …
Run Code Online (Sandbox Code Playgroud) uinavigationbar uinavigationcontroller uibarbuttonitem ios uipageviewcontroller
我有一个iOS应用程序,它利用RestKit 0.20.1从Restful Web服务中检索数据.我还应该添加应用程序使用CoreData.应用程序启动时,主屏幕是一个由默认搜索词填充的集合视图.标题中还有一个用作搜索栏的文本字段.
当用户使用搜索栏时,我无法清除以前加载的单元格.它只是加载新单元格并将之前的单元格向下推.这是适用的代码.
- (BOOL) textFieldShouldReturn:(UITextField *)textField {
//This sets up the NSDictionary for the Restkit postObject parameters
NSArray *objects =[NSArray arrayWithObjects:textField.text, nil];
NSArray *keys =[NSArray arrayWithObjects: @"query",nil];
NSDictionary *params = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
self.search=params;
//This is the POST request to the server
[[RKObjectManager sharedManager] postObject:nil path:@"/rest/search?ip=255.255.255.0" parameters:search success:nil failure:nil];
//This is what I thought would clear out the old and replace with the new
[self.collectionView reloadData];
[textField resignFirstResponder];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我引用了这个问题如何删除所有项目并向UICollectionView添加新项目?并且[collectionView reloadData]
是公认的答案.
我选择了 …
我有一个iOS应用程序,主屏幕是UICollectionViewController.从集合视图中选择项目时,视图将被推送到项目的详细视图.在详细视图中,我构建了一个从侧面移出的抽屉/滑块.为了让视图看起来像我想要的方式,我隐藏了默认导航栏并通过故事板插入了一个.
我遇到了一个问题,当隐藏默认导航栏时,您将失去使用导航控制器附带的后退按钮功能.我通过在后退按钮处添加一个按钮来解决这个问题(上面的图像显示没有按钮).现在我使用下面的代码行回到集合视图.
[self.navigationController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
它以我想要的方式工作,除了当我返回到集合视图时我丢失了导航栏.有没有人对如何解决这个问题有任何想法?提前致谢!