标签: uistoryboard

UIStoryBoard从ApplicationDelegate获取第一个视图控制器

我有一个ApplicationDelegate实现的协议.我想将它传递给故事板中定义的第一个视图控制器.如何从该方法访问它?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Run Code Online (Sandbox Code Playgroud)

ios ios5 uistoryboard

10
推荐指数
2
解决办法
2万
查看次数

我可以将segues与视图控制器的指定初始化器一起使用吗?

我是故事板的新手,我已经设置了一个从按钮到视图控制器的segue.此视图控制器是自定义子类SFListViewController,具有指定的初始化程序initWithList:.

使用指定的初始化程序是正确初始化视图控制器的唯一方法.但是,当使用segue时,不会调用指定的初始值设定项(显然).

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.identifier isEqualToString:@"Show List"]) {
    SFListViewController *listViewController = segue.destinationViewController;
    // ????
  }
}
Run Code Online (Sandbox Code Playgroud)

如何执行segue调用指定的初始值设定项?

objective-c ios uistoryboard segue

10
推荐指数
1
解决办法
2825
查看次数

在多个子类之间共享storyboard viewcontroller

我和佩德罗在这里有同样的问题,但对答案不满意,因为已经有了奖励和奖励,我创造了这个问题,我会尽快添加赏金.

我想在代码中创建或操作segue(以黄色突出显示),以便主视图是MFMasterViewController(以红色突出显示)的多个子类中的任何一个.

故事板图

做这个时使用笔尖我可以创建一个笔尖,SharedNib.xib和设置类的MFMasterViewController,然后创建我的子类,比方说 MFMasterViewControllerSubclassA,MFMasterViewControllerSubclassB 等和然后实例化我想要使用哪个子...

MFMasterViewControllerSubclassA *controller = [[MFMasterViewControllerSubclassA alloc] initWithNibName:@"SharedNib" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

要么...

MFMasterViewControllerSubclassB *controller = [[MFMasterViewControllerSubclassB alloc] initWithNibName:@"SharedNib" bundle:nil];
Run Code Online (Sandbox Code Playgroud)

等等

关于如何使用故事板来解决这个问题的任何线索?

我不能在Pedro的问题上使用提供的答案,我的子类扩展超出了数据源和委托.

cocoa-touch ios uistoryboard uistoryboardsegue

10
推荐指数
1
解决办法
2211
查看次数

iOS故事板我应该使用它们吗?

我是iOS开发的新手(尚未创建应用程序),但我向我的朋友寻求建议,该应用程序在市场上拥有非常高评价的应用程序.他说不要使用故事板.

尽管我想听取他的意见,但他们似乎真的很有帮助.

  • 这是否会在将来导致我的应用出现问题?
  • 我有什么理由不想使用故事板吗?

来自Android背景,我不明白为什么我应该使用它们.

xcode storyboard ios uistoryboard

10
推荐指数
3
解决办法
1万
查看次数

奇怪的UICollectionView选择行为

我正在使用a UICollectionView显示菜单,并且以非常奇怪的方式选择项目.

这是填充它们的静态数据:

self.menuItems = @[@{@"text" : @"First", @"image" : @"180-stickynote.png"},
                   @{@"text" : @"Second", @"image" : @"180-stickynote.png"},
                   @{@"text" : @"Third", @"image" : @"180-stickynote.png"},
                   @{@"text" : @"Fourth", @"image" : @"180-stickynote.png"},
                   @{@"text" : @"Fifth", @"image" : @"180-stickynote.png"},
                   @{@"text" : @"Sixth", @"image" : @"180-stickynote.png"}];
Run Code Online (Sandbox Code Playgroud)

和单元格提供程序,其中自定义子类只是附加到原型单元格并具有a UILabel和a UIImageView:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    CUMenuCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MenuCell" forIndexPath:indexPath];

    NSDictionary *cellInfo = [self.menuItems objectAtIndex:indexPath.row];

    cell.imageView.image = [UIImage imageNamed:[cellInfo valueForKey:@"image"]];

    cell.label.text = [cellInfo valueForKey:@"text"];

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

这是do选择行方法,记录标题和项目的行(它们都在第0部分):

- (void)collectionView:(UICollectionView …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c ios uistoryboard uicollectionview

10
推荐指数
1
解决办法
3311
查看次数

手动模态segue不起作用,View Controller不在窗口层次结构中?

我一直在网上搜索Stack Overflow几个小时,我无法解决这个问题.这里希望你们都看到我的错误,因为我找不到它.

我刚开始有一个简单的基于故事板的应用程序.最初的ViewController是UITabBarController的一个实例,它带有来自模板的两个虚拟ViewControllers.启动时,我需要检查设备是否已登录到外部服务.如果没有,我将显示一个允许用户进行身份验证的模态ViewController,如果设备已经过身份验证,那么我将只显示FirstViewController.

以下步骤是自创建项目以来我所做的一切:

  1. 在Storyboard上创建AuthenticateViewController场景
  2. 为AuthenticateViewController创建代码文件,并将它们分配给相应的场景
  3. 为UITabBarController子类创建代码文件,并将初始UITabBarController场景与该新子类关联
  4. 在故事板上从UITabBarController场景到AuthenticateViewController场景创建一个新的segue
  5. viewDidLoadUITabBarController子类中手动调用segue

当我运行应用程序时,模态segue不会触发,显示UITabBarController的第一个ViewController,我在XCode中得到以下输出:

Warning: Attempt to present <AuthenticateViewController: 0x83c0c10> on <EPTabBarController: 0x83be600> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

下面的相关代码,实际上是我到目前为止添加的唯一代码.如果截图或其他信息有用,请告诉我.在此先感谢您的帮助.

EPTabBarController,UITabBarController的子类:

#import "EPTabBarController.h"
#import "AuthenticateViewController.h"

@interface EPTabBarController ()

@end

@implementation EPTabBarController

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self performSegueWithIdentifier:@"authenticationSegue" sender:self];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
Run Code Online (Sandbox Code Playgroud)

ios ios5 uistoryboard uistoryboardsegue ios6

10
推荐指数
1
解决办法
8995
查看次数

何时使用show Segues以及何时使用显示细节Segues

我是IOS开发的新手,我很困惑何时使用show segue和何时使用Show detail segue.它们都用于默认的主 - 详细信息项目.

那么我们什么时候使用其中任何一个?什么是最好的使用show segue和何时使用show detail segue

xcode ios uistoryboard uistoryboardsegue

10
推荐指数
1
解决办法
3816
查看次数

由"In-Call"状态栏剪切的"启动屏幕"故事板

我有一个简单的启动画面故事板.这是一个UINavigationController以它UITableViewController为根的.它只是显示UITitleBar了应用程序的正确性.

当我使用较大的通话中样式状态栏启动时,启动屏幕的标题栏将被剪切在状态栏后面.启动后,应用程序正确调整大小,以便不剪切标题 - IE 运行时故事板没有问题.

午餐屏幕截图

我可以修复此发布剪辑吗?

我注意到的是,启动屏幕故事板似乎没有提供顶部和底部布局指南.我不确定这是否相关.

这是启动屏幕故事板的屏幕截图:

发布屏幕故事板.

作为一个注释,它没有任何垂直布局约束要附加,我似乎无法使用界面构建器工具为此创建任何约束.

ios uistoryboard launch-screen

10
推荐指数
1
解决办法
1420
查看次数

使用故事板对不同项目/包中的故事板的引用似乎已断开

现在,我有一个工作区,里面有两个项目,一个叫"ProjectOne",另一个是"ProjectTwo",如下所示:

图片

他们分别有一个故事板,现在我想通过按下"To Project Two"连接两个故事板,如下所示:

图片

但当我点击按钮时,它会显示出来

"因未捕获的异常而终止应用程序'NSInvalidArgumentException',>原因:'无法在捆绑包中找到名为'two'的故事板NSBundle 8C6A5FDC9E06/ProjectOne.app>(已加载)'"

有可能吗?我寻求这种方法几天但也不知道......

xcode ios uistoryboard

10
推荐指数
2
解决办法
1681
查看次数

如何使UILabel调整大小以适应文本

我有一个UILabel,我已经在一个以视图为中心的故事板中.它有一些初始文本"点击登录".

我在登录后将标签的值更改为用户名.一旦我这样做,标签就不再居中,因为UILabel没有改变大小.

如何在界面构建器中使用autolayout执行此操作?

xcode interface-builder ios uistoryboard

10
推荐指数
1
解决办法
8790
查看次数