我正在玩MVVM-C架构,但我不确定如何在选择选项卡时使用不同的选项卡实例化多个协调器.
这是我的主要应用程序协调员类......
protocol UINavigationControllerType: class {
func pushViewController(_ viewController: UIViewController, animated: Bool)
func popViewController(animated: Bool) -> UIViewController?
}
protocol Coordinator: class {
func start()
}
final class AppCoordinator: Coordinator {
// MARK: - Properties
var managedObjectContext: NSManagedObjectContext!
var coordinators = [String : Coordinator]()
var tabController: UITabBarController?
// MARK: - Object Lifecycle
init(moc: NSManagedObjectContext, tabController: UITabBarController) {
self.managedObjectContext = moc
self.tabController = tabController
}
// MARK: - Coordinator
func start() {
guard let tabController = tabController else {return}
let profileNavigationController = …Run Code Online (Sandbox Code Playgroud) 我正在使用一个大约有 7/8 年历史的旧 Xcode 项目,我已将其迁移到 Objective-C 2.0 并支持 ARC。在我开始工作之前,该项目不支持自动布局(这是在发布之前)。我设法清除了在更现代的 Xcode IDE (10.2.1) 中运行它时遇到的许多错误/问题。出于测试目的,我已将此代码实现到AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height)];
[self.window setBackgroundColor:[UIColor redColor]];
self.window.rootViewController = [UIViewController new];
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这出于某种原因给了我这个:

这是当我在 iPhone X、iPhone XR 或 iPhone XS Max 上运行时的结果,看起来屏幕的顶部和底部边缘(安全区域)没有被拾取。当我调试视图层次结构时,它们也没有被选中,它只显示红色空间?当我将此代码放入新项目时,它工作正常并填满所有空间。我想知道因为这是一个旧项目,所以可能有一个构建设置限制了UIWindow扩展以允许支持新设备?
另外作为旁注,我确保该UIWindow对象没有在其他地方被操纵。
我在UICollectionView中嵌入了一个UITableView,集合视图水平滚动,所以如果我在集合视图单元格中的一个表视图行上尝试"滑动删除",它显然只是滚动集合视图.想知道是否有一个解决方案,以便它可以检测集合视图单元格的uitableview部分上的滑动而不是滑动uicollection视图本身?UITableView仅占用集合视图单元的四分之一.我正在使用UIViewController.我也在我的集合视图中启用了分页.
uitableview uiscrollview uigesturerecognizer uicollectionview swift
我在 CoreData 中有一个接受日期值的属性。我只想获取当前日期并将其保存为 "dd/mm/yyyy" 格式。但不知道怎么做。谢谢
当我的应用程序第一次启动时,我做了一些第一次设置配置,它使用 CoreData API 和来自 JSON 文档的数据为我的 SQLLite 数据库做种。
为此,我首先从核心数据堆栈获取对托管对象上下文的引用,然后调用执行 JSON 配置的方法。然后我打电话:
....(JSON conversion)....
context.perform {
_ = Exercise.insert(into: context, name: exerciseName, category: categoryNumber, equipment: equipment, skill: "", primaryMuscle: primaryMuscle, otherMuscles: otherMuscles, info: exerciseDescription, image1: exerciseImage1, image2: exerciseImage2)
}
Run Code Online (Sandbox Code Playgroud)
在我循环遍历 JSON 对象时的每次迭代中,它都会保留每个对象。
插入对象的方法是这样的:
public static func insert(into context: NSManagedObjectContext, name: String, category: Int16, equipment: String?, skill: String?, primaryMuscle: String?, otherMuscles: String?, info: String?, image1: String?, image2: String?) -> Exercise {
let exercise: Exercise = context.insertObject()
exercise.name = name
exercise.category = category …Run Code Online (Sandbox Code Playgroud) 我在的我的应用程序委托(主要用于CoreData)中进行了很多设置applicationDidFinishLaunchingWithOptions。很好奇我将如何在appDelegate中测试代码?谢谢
我正在尝试在我的工作流脚本上安装我的依赖项。但是,有些是私人豆荚,当我尝试这样做时,它给了我这个错误bundle exec pod install:
Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs`
Cloning spec repo `keterauk` from `https://github.com/KeteraUK/Strive-Pod-Specs`
[!] Unable to add a source with url `https://github.com/KeteraUK/Strive-Pod-Specs` named `keterauk`.
You can try adding it manually in `/Users/runner/.cocoapods/repos` or via `pod repo add`.
##[error]Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)
pod repo add...导致此错误:fatal: could not read Username for 'https://github.com': Device not configured即使我添加了我的个人访问令牌(秘密)。
这是我的完整脚本:
Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs`
Cloning spec repo `keterauk` from `https://github.com/KeteraUK/Strive-Pod-Specs`
[!] Unable to add …Run Code Online (Sandbox Code Playgroud) 我正在创建一个日历应用程序,我想将其布局为 UIPageViewController 类型的样式。所以每个页面都显示一天。每个页面将完全相同(如 UI 组件中),但仅包含不同的数据。我想使用相同的 ViewController 来执行此操作,因为它显然会更整洁。但我只是想知道这是否可能?如果是这样我该怎么做呢?多谢你们。
scrollview uiviewcontroller nscalendar uipageviewcontroller swift
我将如何以编程方式将搜索栏添加到 uitableview 标题中?具体来说,我有一个条形按钮项,当它被按下时,我想在搜索栏中设置动画到表格视图标题中,当按下取消按钮时,它将动画返回到视图之外,标题缩放回正常。这可能吗?谢谢。
我将如何改变 uitableview 背景图像的大小?默认情况下,它会自动为我调整图像大小,但我希望我的图像小一点。我尝试过执行以下操作...
let image = UIImage(named: "noFoldersImage")
let iv = UIImageView(image: image)
iv.contentMode = .scaleAspectFit
iv.layer.frame = CGRect(x: self.view.frame.midX, y: self.view.frame.midY, width: 200, height: 200)
self.tableView.backgroundView = iv
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,有什么想法吗?谢谢
swift ×7
ios ×4
uitableview ×3
xcode ×3
appdelegate ×2
core-data ×2
cocoapods ×1
date ×1
github ×1
mvvm ×1
nscalendar ×1
objective-c ×1
protocols ×1
scrollview ×1
sqlite ×1
tdd ×1
uiimage ×1
uiimageview ×1
uiscrollview ×1
uisearchbar ×1
uiwindow ×1
unit-testing ×1
xctest ×1