Tag: 控制器

UINavigationController:呈现视图控制器,同时closures另一个控制器正在iPad上进行

我有一个观点,要求用户login。当用户试图打开该视图,他没有login,我会打电话给他的login视图login,他完成后,我会打电话给他原来的意见,他打算查看。 在iPhone上,这工作正常,因为我推视图控制器。 但在iPad上,我呈现视图控制器这是行不通的。 它说解雇正在进行中,不能显示新的控制者。 这里是代码: – (void) buttonPressed { if (!userLoggedIn) { // userLoggedIn getter calls new screens of login if needed return; // this is executed if user declined to login } MyViewController *temp = [[MyViewController alloc] init]; [self.navigationController presentViewController:temp animated:YES]; // this returns warning that dismissal in progress and does not work } […]

在保持NSFetchedResultControllerfunction的同时保存单个CoreData实体(不是整个上下文)

唷,对于长头衔感到抱歉。 我有一个单独的托pipe对象上下文,我存储从两个不同的位置派生的歌曲。 我从手机上的永久性存储(使用核心数据)中获得一些歌曲,并从一个在线数据库中提取一些歌曲。 这两首歌都是相同的MananagedObject子类。 我希望这两首歌都在一个上下文中,因为我希望它们都显示在与NSFetchedResultsController连接的表视图上。 当我想保存其中一首歌曲时出现问题。 我不想将所有从在线数据库中提取的歌曲保存到手机中。 我只是想保存单曲,所以一个简单的[moc保存]不起作用。 另一个问题是,我保存单曲后,我仍然希望从网上拉的歌曲是在上下文(但再次,没有保存)。 我相信我有几个不同的select: 1)有可能有NSFetchedResults控制器连接到多个上下文? 2)我可以将从在线数据库中提取的所有歌曲移到单独的临时上下文中,保存在原始上下文中,然后将所有歌曲移回。 (请参阅: 如何将NSManagedObject从一个上下文复制或移动到另一个上下文? ) 3)记住在线歌曲的所有键值对,从上下文中删除在线歌曲,保存原始上下文,根据已保存的键值对将所有在线歌曲重新插入原始上下文。 4)我是一个巨大的n00b,我错过了一些更容易。 谢谢!

删除的类丢弃错误消息unknown>:0:错误:没有这样的文件或目录:

所以我和一些在bitbucket项目上工作的朋友已经意识到,bitbucket有时不会同步所有的文件。 但是这是发生了什么事情: 我继续工作,并创build一个类,我基本上复制了一个旧的视图控制器(称为WelcomescreenViewController.swift – > CreateAccountViewController.swift ),并在主故事板进行了一些调整。 在这里,我删除了新版本中的所有旧版本,然后将其作为ViewController作为自己的类,并将其与主Storyboard中的它连接起来。 现在发生的是有一些问题,我把所有东西都还原了,再次删除了这两个东西。 现在基本上Xcode还是认为应该有这个类。 它总是丢弃信息: 我现在也用我的文件做了一个截图: 我试图再次创build类,以便Xcode很高兴,但它并没有帮助。 是文件某处链接或我该怎么做,教Xcode嘿一切都很好,不介意关于旧文件CreateAccountViewController.swift ?

了解iOS中的View Controller嵌套

在过去的几天里,我一直在扯掉自己的头发,试图理解iOS开发这个看似基本的概念: 如果我想有两个或更多的视图控制器显示和可用在同一个“屏幕”,是这样的: 根据苹果的“每个屏幕内容一个VC” 完全可能通过添加VC的通过代码 只是没有完成。 相反,使用一个VC,只需添加模拟所需视图控制器function的代码即可。 让我重新修改一下: 如果我想在iPad应用程序中拥有占据屏幕左侧很大一部分的UIView (A)和占据屏幕右侧其余部分的第二个UIView (B)我想添加一个button到UIView B,点击时将使用模式转换来向上滑动UITableview来replaceUIView B,然后这个UITableview将像一个典型的UITableviewController ,当用户从表中select一个项目时,典型的事件发送到桌面控制器推入一套新的项目,这是可能的吗? 在我看来,如果我已经能够轻松地创build两个单独的UIViewControllers,并在一个VC中有一个button模态地调出第二个VC,为什么不能组合这个function,以便一个VC有两个子VC,而那些VC处理他们自己的模式转换。 或者,在这种情况下,最好的做法是只需一个VC来处理所有事情,然后在不同的UI元素上点击各种不同的视图后,手动处理幻灯片的进出。 正如你所看到的,我认为我已经阅读了太多不同的,相互冲突的回答,类似于这个问题,我已经完全搞不清什么是什么了。 如果有人明白我在做什么,并可以借给一个帮助解释或一些指针Id非常感激。

iOS中使用MVVM

我是一个iOS开发人员,我在我的项目中拥有大量视图控制器,所以我一直在寻找一种更好的方式来构build我的项目,并遇到了MVVM(Model-View-ViewModel)架构。 我已经阅读了很多与iOS的MVVM,我有几个问题。 我会用一个例子来解释我的问题。 我有一个名为LoginViewController的视图控制器。 LoginViewController.swift import UIKit class LoginViewController: UIViewController { @IBOutlet private var usernameTextField: UITextField! @IBOutlet private var passwordTextField: UITextField! private let loginViewModel = LoginViewModel() override func viewDidLoad() { super.viewDidLoad() } @IBAction func loginButtonPressed(sender: UIButton) { loginViewModel.login() } } 它没有Model类。 但是我创build了一个名为LoginViewModel的视图模型来放置validation逻辑和networking调用。 LoginViewModel.swift import Foundation class LoginViewModel { var username: String? var password: String? init(username: […]

自定义导航栏

我正在抓取运球,发现附带的devise。 我想知道如何做这样的自定义导航栏。 我的意思是如何创build一次导航栏,并隐式重复使用它为每个视图控制器。 我想有一种根视图控制器,并inheritance其他视图控制器,但我不知道如何做到这一点。 任何想法或链接将appreachated! 干杯。 西里尔

正确访问Segue的目标视图控制器来分配协议代理

在实现select列表时,我遇到了在集成segue和协议时遇到的一些问题。 在我的select列表中.h我有: #import <UIKit/UIKit.h> @protocol SelectionListViewControllerDelegate <NSObject> @required – (void)rowChosen:(NSInteger)row; @end @interface SelectColor : UITableViewController <NSFetchedResultsControllerDelegate> -(IBAction)saveSelectedColor; @property (nonatomic, strong) id <SelectionListViewControllerDelegate> delegate; @end 在我的select列表.m我有: @implementation SelectColori @synthesize delegate; //this method is called from a button on ui -(IBAction)saveSelectedColore { [self.delegate rowChosen:[lastIndexPath row]]; [self.navigationController popViewControllerAnimated:YES]; } 我想通过从另一个表视图执行segue来访问这个select列表视图: @implementation TableList … – (void)selectNewColor { SelectColor *selectController […]

NSFetchedResultsController是否观察到永久存储的所有更改?

我的程序工作如下链接: 更新NSFetchedResultsController的结果而不需要新的提取 将NSFetchedResultsController的结果显示给UITableView 从Web服务获取新的对象,并将其存储到核心数据(在相同的视图控制器,与RestKit) 更新表视图与NSFetchedResultsController委托的通知 NSFetchedResultsControllerDelegate的实现是从Apple的Core Data项目复制的,我的预测是: [NSPredicate predicateWithFormat:@"isMyTest == TRUE"] 如果属性更新从TRUE变为FALSE,则它将从tableview中删除行(因为该行的对象位于fetchedObjects中) 但是,如果属性更新从FALSE变为TRUE,则NSFetchedResultsController不通知任何内容,因此新的数据不能在表视图中看到。 如果我手动更新NSFetchedResulsController和UITableView,它会显示新的数据。 我以为NSFetchedResultController监视持久存储中的所有更改,这是太大的希望? :d (我真的想这样做,因为其他视图控制器可以更新持久性存储,那么很难更新视图控制器。) 如果是这样,你可以让我知道我怎么能更好地更新NSFetchedResultsController? (更新) 在参考NSfetchedResultsController,我读了下面的单词: 因此,控制器有效地具有三种操作模式,由是否具有委托以及是否设置了高速caching文件名来确定。 没有跟踪:代表被设置为零。 控制器只是提供对数据的访问,就像执行提取时一样。 仅内存跟踪:代理非零,文件caching名称设置为零。 控制器监视其结果集中的对象,并更新部分和响应相关更改的sorting信息。 完全持久跟踪:委托和文件caching名称不为零。 控制器监视其结果集中的对象,并更新部分和响应相关更改的sorting信息。 控制器维护其计算结果的持久caching。 “完全持续跟踪”并不意味着我想要什么? 我设置了cacheName,但是它的工作原理是一样的。

在导航控制器中点击后退button时会调用哪种方法?

我想在导航控制器中点击后退button时保存数据库。 所以我会在方法中插入代码。 在导航控制器中点击后退button时会调用什么方法?

更改子视图控制器

我有一个视图控制器,当我按下button时出现一个子视图控制器。 这工作完美,但我想改变这个孩子视图控制器为另一个,如果我按下button,这是在这里做的像两步login。 任何想法? 因为从主视图控制器我知道如何展示一个孩子,但从孩子,我不知道该怎么做。