我目前正在从头开始创建iOS应用,而不使用故事板。一切都工作得很好,除了一件我无法推动视图控制器从rootViewController
内的单元格,流程在下面,请不要使用故事板,这个项目是我想要的,没有故事板:)
1,在AppDelegate.swift中创建根视图控制器
let layout = UICollectionViewFlowLayout()
let homeViewController = HomeViewController(collectionViewLayout: layout)
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = UINavigationController(rootViewController: homeViewController)
return true
2,在集合视图控制器文件中创建四个单元格
collectionView?.register(HomeController.self, forCellWithReuseIdentifier: sections[0])
collectionView?.register(PortfolioController.self, forCellWithReuseIdentifier: sections[1])
collectionView?.register(ConversationController.self, forCellWithReuseIdentifier: sections[2])
collectionView?.register(ProfileController.self, forCellWithReuseIdentifier: sections[3])
3,我有另一个集合视图,其中包含来自我的api模型文件的动态数量的单元格,上面的那些名称是带控制器的,但它们是集合视图单元格,我以某种方式命名为控制器
class ConversationController: BaseCell, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource, UICollectionViewDelegate {
lazy var collectionview: UICollectionView = {
let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.dataSource = self
cv.delegate = self
cv.backgroundColor = UIColor.white
return cv
}()
4,为这个Conversation.swift注册另一个单元格,到目前为止一切都按照我想要的方式工作
override func setUpViews() {
super.setUpViews()
fetchMessage()
addSubview(collectionview)
addConstraintsWithFormat(format: "H:|[v0]|", views: collectionview)
addConstraintsWithFormat(format: "V:|[v0]|", views: collectionview)
collectionview.register(ConversationView.self, forCellWithReuseIdentifier: cellId)
}
我想要达到的目标是每次用户点击ConversationCell
ConversationController
pushViewController
我想使用UINavigationController
UICollectionViewController
方法推送视图控制器。我知道这个班级没有UIViewController
或HomeViewController
的超级班级,所以我尝试的是因为UICollectionViewController
(在第1部分)是HomeViewController
,我在ConversationController
中创建了HomeViewController
的引用,并在@NodeEntity
public class User extends AbstractAuditingEntity {
@Size(min = 10, max = 10)
@Pattern(regexp = "\\d{10}")
@Property(name="phone")
private String phoneNo;
@Property(name="fname")
@JsonIgnore
private String firstName;
@Property(name="lname")
@JsonIgnore
private String lastName;
@Property(name="activated")
private boolean activated = false;
@Size(min = 2, max = 5)
@Property(name="lang")
private String langKey;
@Size(max = 20)
@JsonIgnore
@Property(name="activationKey")
private String activationKey;
@JsonIgnore
@Property(name="roles")
@Relationship(type="HAS_ROLES", direction=Relationship.OUTGOING)
private Set<Authority> authorities = new HashSet<>();
//Friends
@Property(name="friends")
@Relationship(type="FRIENDS", direction = Relationship.UNDIRECTED)
private Set<User> friends = new HashSet<>();
}
中创建了推送viewController的方法。我设置了断点并且它正在运行,但视图没有被推动。我有点困惑,发生了什么事。任何帮助或建议都会非常有用!谢谢:))