Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UINavigationBar下的UISegmentedControl,不滚动_Iphone_Objective C_Cocoa Touch_Uinavigationbar_Uisegmentedcontrol - Fatal编程技术网

Iphone UINavigationBar下的UISegmentedControl,不滚动

Iphone UINavigationBar下的UISegmentedControl,不滚动,iphone,objective-c,cocoa-touch,uinavigationbar,uisegmentedcontrol,Iphone,Objective C,Cocoa Touch,Uinavigationbar,Uisegmentedcontrol,好吧,我已经解决了这个问题一天左右了,这在新的iOS开发者中似乎是一个相当普遍的问题。然而,ive搜索google、appledev、堆栈溢出等 然而,我很难找到正确的解决办法。没有明确的答案 我需要分段控件来更改tabledata源或完全显示新视图,两者都可以 目前,我有一个变通解决方案,我把分段控件放在一个表格标题中,这样可以很好地工作,但我不希望分段控件与表格单元格一起滚动 我试着让它静态和不可滚动,就像导航栏一样 我在interface builder中尝试了一些选项,但它们都不起作用,

好吧,我已经解决了这个问题一天左右了,这在新的iOS开发者中似乎是一个相当普遍的问题。然而,ive搜索google、appledev、堆栈溢出等

然而,我很难找到正确的解决办法。没有明确的答案

我需要分段控件来更改tabledata源或完全显示新视图,两者都可以

目前,我有一个变通解决方案,我把分段控件放在一个表格标题中,这样可以很好地工作,但我不希望分段控件与表格单元格一起滚动

我试着让它静态和不可滚动,就像导航栏一样

我在interface builder中尝试了一些选项,但它们都不起作用,要么它们不显示,要么我因为找不到表视图而崩溃

尽管如此,我知道这与将视图放入视图中有关

如果有人有空写一本快速而详细的指南,我将非常感谢

编辑

尝试1: 在IB

看法

->Tableview(父视图中的Tableview)

创建此错误

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "EventsViewController" nib but didn't get a UITableView.'

首先,您需要一个控制器,其中包含分段控件、表视图和其他要添加的元素。 由于应用程序只有一个控制器,因此分段控件中的任何更改都可以在其中捕获。捕获事件后,您可以通过更新tableview或加载新视图来决定是重新加载tableview

此新视图也可以作为模式视图、导航控件的新视图或当前视图的子视图加载。(电话留给你)

优点是分段控件和表视图将是UIView的一部分,滚动视图不会将分段视图滚动到看不见的地方。另一个优点是新视图将加载到当前视图的顶部。可以使用委托方法来处理新视图上的back press事件。您还可以将数据从新视图获取到单个控制器

UIView
      --- Segmented control(you can wrap this into a seperate UIView
      --- UITableView (it can also be wrapped into a seperate uiview )
      --- Other widgets

现在,您可以使用一个视图控制器来控制上述主视图。希望这对你有帮助。我在我的一个应用程序中使用了类似的方法。

您可以做的是使用分段控件基本上更改表数据源。基本上,将命中任一段的操作设置为
[myTableView重载数据]。然后,在数据源方法中,添加一些if语句。例如,在numberOfRowsInSection下,说:如果
(mySegmentedControl.selectedSegmentIndex=1)
//第二个按钮,使用此数组。明白我的意思吗?
通过这种方式,您可以使用一个视图控制器来处理两个(实际上是一个)表。

我试图做的是阻止分段控件与表一起滚动:S