Tag: uiviewcontroller

这个类不是密钥XXXXXX的密钥值编码

当我尝试构build并运行我的应用程序时,它崩溃,我在日志中得到这个: reason: '[<LoadingViewController 0x6b2c5a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key aproposViewController.' 奇怪的是aproposViewController没有在LoadingViewController ,它只是我的应用程序中的另一个视图控制器。 请帮忙,thx提前:) 编辑 appdelegate.h: @class LoadingViewController; @interface TopStationAppDelegate : NSObject <UIApplicationDelegate,CLLocationManagerDelegate> { UIWindow *window; LoadingViewController *loadingView; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet LoadingViewController *loadingView; @end appdelegate.m : #import "LoadingViewController.h" @implementation TopStationAppDelegate @synthesize window; […]

iOS – 将variables传递给视图控制器

我有一个视图控制器的视图,当我在屏幕上显示这个视图,我想能够从调用类传递variables,以便我可以设置标签的值等。 首先,我试着为其中一个标签创build一个属性,然后从调用类中调用它。 例如: SetTeamsViewController *vc = [[SetTeamsViewController alloc] init]; vc.myLabel.text = self.teamCount; [self presentModalViewController:vc animated:YES]; [vc release]; 但是,这不起作用。 所以我尝试创build一个方便的初始化。 SetTeamsViewController *vc = [[SetTeamsViewController alloc] initWithTeamCount:self.teamCount]; 然后在SetTeamsViewController有 – (id)initWithTeamCount:(int)teamCount { self = [super initWithNibName:nil bundle:nil]; if (self) { // Custom initialization self.teamCountLabel.text = [NSString stringWithFormat:@"%d",teamCount]; } return self; } 然而,这也没有工作。 它只是加载我给nib文件中的标签的任何值。 我已经用NSLog()散布代码,它正在传递正确的variables值,它只是不设置标签。 任何帮助将不胜感激。 编辑:我刚刚尝试设置实例variables在我指定的初始值设定项,然后在viewDidLoad中设置标签,并工作! 这是做这个最好的方法吗? 另外,当closures这个模式视图控制器时,我也在调用ViewController的视图中更新一个button的文本。 […]

没有新的初始化使用类的数据

我有一个TabBar布局,并在主页选项卡,我有一个button“连接”,当按下时发送一个动作到类TransferViewController创build一个GameKit会话。 然后我有另一个选项卡发送,其中有一个button,说“发送文件”,当按下时发送一个动作到类TransferViewController也使用“会话”variables设置使用连接发送文件,但由于它是一个不同的选项卡它创build一个新的控制器实例,它希望我再次连接,但button是在主页选项卡上。 有无论如何,我可以有一个控制器的两个标签没有两个实例? 我希望用户单击主页选项卡上的连接,然后切换到发送选项卡,然后按发送文件并使用另一个选项卡上的连接设置variables。 我很抱歉,如果这是混乱。

正确使用loadView和viewDidLoad与UIViewController没有nibs / xibs

当我没有笔尖编程时,我的印象是我需要调用loadView来初始化我的视图,如下所示: – (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nil bundle:nil]; if (self) { // Custom initialization [self loadView]; } return self; } (我已经设置了nibNameOrNil = nil,因为没有nib。) 然后,我build立了这样的观点: – (void) loadView { self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 367)]; [self viewDidLoad]; } 这是做viewDidLoad中的一切。 我仍然不确定是否应该以这种方式调用loadView和viewDidLoad。 他们没有自动调用。 令人困惑的是在UIViewController类的参考文档中: loadView讨论 你不应该直接调用这个方法。 视图控制器在请求视图属性时调用此方法,但当前为零。 如果您手动创build视图,则必须重写此方法并使用它来创build视图。 如果使用Interface Builder创build视图并初始化视图控制器,即使用initWithNibName:bundle:方法初始化视图,则直接设置nibName和nibBundle属性,或者在Interface Builder中创build视图和视图控制器 – […]

初始化程序不会覆盖超类的指定初始化程序

所以我刚刚升级到了Xcode 6.3 Beta 3,并且出现了很多与以下相关的错误: 初始化程序不会覆盖超类的指定初始化程序。 override init() { super.init() } 例如,这是一个UIButton类: class CustomButton: UIButton { var target: AnyObject! var selector: Selector! var action: (() -> Void)! override init() { // Initializer does not override a designated initializer from its superclass super.init() // Must call a designated initializer of the superclass 'UIButton' } required init(coder aDecoder: […]

如何手动切换故事板中的UIViewControllers?

我只需要用代码手动查看同一个故事板文件中的UIView控制器。 我用故事板来制作所有的forms和连接。 我的应用程序启动导航控制器,它提供了我访问UIView ( LoginViewController ),然后去标签栏控制器,它提供了4个UIViews 。 根据每个UIView我有.h和.m文件。 我知道关于segue方法,很简单,但是我需要手动方法。 也许我做错了什么。 我试图使用这种方法在IBAction推视图控制器: [self.view pushViewController:LoginViewController animated:YES]; 但是,这是一个错误: 意外的接口名称“LoginViewController”:预期的expression式 花了很多时间弄清楚什么是错,但是我没有成功。 这是我的RollEnemyController.m文件: // RollEnemyController.m #import "RollEnemyController.h" #import "LoginViewController.h" @implementation RollEnemyController; @synthesize AttackButtonPressed; – (IBAction)AttackButtonPressed:(id)sender { LoginViewController* controller = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; [self.view pushViewController:controller]; } @end 这是头文件: // RollEnemyController.h #import <UIKit/UIKit.h> @interface RollEnemyController : UIViewController – (IBAction)RollButtonPressed:(id)sender; @property (weak, […]

以编程方式导航到另一个视图控制器/场景

在从第一个视图控制器导航到第二个视图控制器时,我收到了一条错误消息。 我的编码是这样的 let vc = LoginViewController(nibName: "LoginViewController", bundle: nil) self.navigationController?.pushViewController(vc, animated: true) 问题是我总是得到这种错误信息 2014-12-09 16:51:08.219 XXXXX[1351:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/FDC7AA0A-4F61-47E7-955B-EE559ECC06A2/XXXXX.app> (loaded)' with name 'LoginViewController'' *** First throw call stack: (0x2efcaf0b 0x39761ce7 0x2efcae4d 0x31b693f9 0x31ac1eaf 0x3191e365 0x317fe895 0x318a930d 0x318a9223 0x318a8801 0x318a8529 0x318a8299 0x318a8231 […]

如何在Swift中设置状态栏风格3

我正在使用Xcode 8.0 beta 4。 在以前的版本中,UIViewController有设置状态栏风格的方法 public func preferredStatusBarStyle() -> UIStatusBarStyle 但是,我发现它在Swift 3中变成了“只可变varaiable”。 public var preferredStatusBarStyle: UIStatusBarStyle { get } 如何提供在我的UIViewController中使用的样式?

我滥用UIViewController子类?

在试图找出为什么viewWillAppear没有在我的应用程序中被调用,我遇到了什么可能是我对UIViewController子类的打算使用的严重误解。 根据以下的post, viewWillAppear在使用addSubView的时候不会运行! 和链接到这个博客文章: http : //blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/ UIViewController子类只应在非常特定的情况下发生。 最值得注意的是当直接添加到UIWindow,或其他苹果创build自定义控制器像UINavigationControllers。 我当然有罪,UIViewController子类的视图添加到其他UIViewController子类的视图。 事实上,我认为这或多或less是苹果公司实施MVC的总体思路……一个整体的VC,与其他风投公司一起,都乐于让他们的委托方法叫做。 如果在这个post中描述的模型中有很多视图(根据定义需要控制)在应用程序中来回移动,并且有很多screenfull,每个screenfull都应该有一个主VC子类,所有的子视图都由自定义控制器(这恰好控制视图)是简单的NSObject的子类。 在这种情况下,UIViewControllers应该只能直接到窗口或UINavigationController,UITabBarController等? 你保证在这种情况下获得UIVC委托方法吗? 这与当viewcontroller的视图是另一个VC的子视图时手动调用委托方法有什么区别? 老实说,这似乎是一个巨大的浪费时间。 ViewDidLoad,viewDidLoad,viewDidUnload,viewWillAppear,viewWillDisappear的自定义实现不要提到像“视图”等属性一样简单的事情… 所以基本上,要么我完全错了,要么就是疯狂追逐。 如果不能指望UIViewController的子类来调用viewWillAppear,为什么不手动调用该方法,并完成它呢? 为什么要复制UIViewController的所有感知function?

@interface和@implementation指令中括号内的文字是什么意思?

我有一个关于苹果的一些示例代码的基本问题。 在.m文件中,类声明如下所示: @interface MyMovieViewController (OverlayView) […] @end @interface MyMovieViewController (ViewController) […] @end @implementation MyMovieViewController(ViewController) […] @end @implementation MyMovieViewController (OverlayView) […] @end @implementation MyMovieViewController […] @end 完整代码在这里 。 看起来像括号内的东西(“OverlayView”和“ViewController”)只是在帮助分解代码并使其更具可读性,但实际上并不影响代码的执行。 但我不想误解重要的东西,所以我想我会检查确定。 我的理解是正确的吗? 谢谢!