我读了一些与同一个问题有关的答案,但我想问一些具体的问题.如果你有一个巨大的项目,想象一个庞大的社交网络,即使你将你的UIViewControllers逻辑分离成单独的UIStoryBoards,它似乎仍然会减慢这个过程.每当你查看任何故事板时,需要一段时间来渲染所有这些UIViewControllers,这似乎是一个巨大的痛苦处理.
现在,对于大型项目,您会选择Nib文件还是坚持下去UIStoryBoards?
首先我要告诉大家的是,我在 Stack Overflow 上遇到了多个相同类型的问题,但它们都没有帮助我。
所以我创建了新问题来讨论我的问题。
我是 iOS 编程和 Storyboard 布局制作的初学者,所以每天在设计中遇到的问题很少。对于这个问题,我已经花了两天的时间,但对于专家来说,帮助我解决这个问题可能真的很容易。
我在布局中收到红色警告,因为 y 位置、高度以及我想要解决此问题的任何方式都需要限制。下图将使您更清楚地了解这一点:
具体来说,我在视频视图和下面的按钮中遇到了有关 y 位置限制的问题。
所以请建议我,如何解决这个问题?当我进行布局时,我多次遇到同样的问题,所以如果我学习这个解决方案,那么这对我来说将是很大的缓解。
我在.storyboard文件中创建了一个UILabel,它有一些初始文本"Movie Title".我已将UILabel连接到我的ViewController文件中定义的属性.出于某种原因,当我运行模拟器时,文本将不会显示在UI中.我看过类似的问题,但我没有看到任何有帮助的回应.
我的.h文件中有以下属性
@property (strong, nonatomic) IBOutlet UILabel * movieTitle;
Run Code Online (Sandbox Code Playgroud)
它是在我的.m文件中合成的
@synthesize movieTitle;
Run Code Online (Sandbox Code Playgroud)
然后我有一些代码执行以下操作:
NSLog(@"movie details title in Movie object: %@", _movie.name);
self.movieTitle = [[UILabel alloc] init];
[self.movieTitle setText:self.movie.name];
NSLog(@"movie details title in UILabel.text: %@",self.movieTitle.text);
Run Code Online (Sandbox Code Playgroud)
控制台输出以下内容
movie details title in Movie object: Transformers
movie details title in UILabel.text: Transformers
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,在启动时检查有效的登录凭据,如果找到并且未过期,则会显示主拆分视图控制器,如果不是,则应显示登录屏幕.
每个部分都可以单独工作,但我正在努力在发布时选择合适的视图进行显示.
我已经尝试从根视图控制器设置模态segue,并在我的应用程序中:在App Delegate中使用didFinishLaunchingWithOptions:函数,调用:
// Segue to the login view controller...
if (loginNeeded) {
[self.window.rootViewController performSegueWithIdentifier:@"LoginScreen" sender:self];
}
Run Code Online (Sandbox Code Playgroud)
这在逻辑上应该可行,但是从app委托中触发segue似乎是不可能的.
处理这个问题的理想场所和技术是什么?
我在iOS应用程序中首次使用故事板.我的故事板(A和B)中有2个视图.让我们说A是我的故事板中的初始视图控制器.当我的应用程序启动时,我可以看到视图控制器A.到目前为止,一切都按预期工作.现在在我的视图控制器A中,我正在检查用户是否已登录.如果用户没有登录,那么我想呈现视图控制器B.如何以编程方式使用PresentModalViewController以模态方式显示B?
这是我的设置

这是我的代码
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
if (!isUserLoggedIn) {
NSLog(@"USER NOT LOGGED IN....");
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
LoginViewController *vc = (LoginViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"B"];
[self presentModalViewController:vc animated:YES];
}
}
Run Code Online (Sandbox Code Playgroud) 我想用故事板来创建我的应用程序.我可以找到很多关于如何使用导航或tabcontroller的信息,但我不是其中之一.
我的目标是创建一个具有不同视图但不使用导航或tabcontroller的应用程序.我该怎么做?
我正在使用新的iOS功能来翻译故事板(http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html)
这个解决方案的问题,它不适用于我的UILabel子类.
以下是我的UILabel子类的代码:
.H:
#import <UIKit/UIKit.h>
@interface LabelThinText : UILabel
- (void)awakeFromNib;
-(id)initWithFrame:(CGRect)frame;
@end
Run Code Online (Sandbox Code Playgroud)
.m:
@implementation LabelThinText
- (void)awakeFromNib
{
[super awakeFromNib];
[self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]];
}
-(id)initWithFrame:(CGRect)frame
{
id result = [super initWithFrame:frame];
if (result) {
[self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]];
}
return result;
}
@end
Run Code Online (Sandbox Code Playgroud)
我想我错过了从Storyboard.strings文件中获取自动翻译的东西.
有人有想法吗?
谢谢 !
我正在创建OS X状态栏应用程序。
我正在努力实现以下目标:
因此,当我单击菜单项时,我试图以编程方式显示主窗口,但没有成功。
我的主窗口已选中“隐藏停用”。一旦隐藏,就无法使用代码再次使其可见。
这是我现在拥有的代码,但是不起作用:
@IBAction func menuClick(sender: AnyObject) {
var mainWindow = NSStoryboard(name: "Main", bundle: nil)?.instantiateInitialController()
mainWindow?.makeKeyAndOrderFront(self)
}
Run Code Online (Sandbox Code Playgroud) 我的performSegueWithIdentifier方法的实现不是启动segue.
我已经尝试通过在方法之前和之后放置print语句进行调试:它在之前打印,而不是之后打印,这显然表明该方法不起作用,对吧?
class ViewController: UIViewController{
var signupActive = true
@IBOutlet weak var username: UITextField!
@IBOutlet weak var password: UITextField!
var errorMessage = "Please try again later"
func displayAlert(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction((UIAlertAction(title: "Ok", style: .Default, handler: { (action) -> Void in
self.dismissViewControllerAnimated(true, completion: nil)
})))
self.presentViewController(alert, animated: true, completion: nil)
}
@IBAction func signUp(sender: AnyObject) {
if username.text == "" || password.text == "" {
displayAlert("Error in form", message: "Please …Run Code Online (Sandbox Code Playgroud) 我一直收到这个错误
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'路径中似乎没有有效的已编译故事板'/var/containers/Bundle/Application/43F5F727-9B69-404E-A320-22AE93547B73/vContacts.app/ Base.lproj/Main.storyboardc"
当我在iOS 10的设备中使用以下行时.它在iOS 9中运行良好
let mainST = UIStoryboard(name: "Main", bundle: nil)
Run Code Online (Sandbox Code Playgroud)
我已经将目标家庭设备设置为1/2(iPhone和iPad)并清理项目但仍然出现此错误.怎么解决?
uistoryboard ×10
ios ×6
segue ×3
swift ×3
xcode ×3
ios5 ×2
cocoa ×1
fonts ×1
ios10 ×1
localization ×1
macos ×1
nib ×1
swift3 ×1
translation ×1
uilabel ×1